if ($_POST["pwd"] == "$password") 
如果php源码是上面这个if,请问这有安全问题吗?
能通过构建pwd通过这个if吗?
如果能注入,怎么写pwd?

解决方案 »

  1.   

    完整代码 发出来看看如果仅仅是字符串比较 使用 strcmp.另外 pwd使用正则进行处理 或者 addslashes(); 关键是看你的密码是怎么要求别人填写的.
      

  2.   

    if ($_POST["pwd"] == "$password")  
    if ($_POST["pwd"] == "password")  
    ??????
      

  3.   

    看来是我没说清楚了。
    我下载了个源程序,其中一句判断密码的语句是
    if ($_POST["pwd"] == "$password")
    其中$password已经写死了,在前面定义的123.
    页面上就一个name=pwd的密码框。
    其中pwd内容post过去后没有作任何过滤,只是单纯的比较。
    我想问如果我pwd内容写成  1==1 or 1
    if语句就应该是 1==1 or 1==123 ,为什么if语句还是false呢? 
    能在不修改源码的情况下写一个pwd来让这个if语句为真吗?
      

  4.   

    你说的是常见的SQL注入,这种情况存在SQL里,代码只有绕过去,没有你说的这个可能。
      

  5.   

    能在不修改源码的情况下写一个pwd来让这个if语句为真吗?。。这个多简单123
    .....囧if('1==1 or 1' == '123')您觉得这俩字符串能相等么?
      

  6.   

    可是我 1'=='1' or '1 这个也试了。
    构造 if('1'=='1' or '1'=='123')
    这个也不能通过。
    双引号试了也不行。
    我没做任何特殊字符的过滤,是php内部做了什么处理吗?
      

  7.   

    if ($_POST["pwd"] == "$password")  
    这样的语句是不存在安全问题的
    你担心的那种叫SQL注入,你可以搜索下这方面的知识。