php中的安全脚本操作

时间:2011-02-09 20:24:52

标签: php security

您好我想问一下这个例子中“脚本动作”的安全性

<form method="post" action="chek_user.php" enctype="multipart/form-data"/>

行动是

$username= htmlentities($_POST['username']);    
$mdp=htmlentities(md5($_POST['pass']));

  if($user->check_login($username,$mdp)==0)
    {
        $_SESSION["IP"]=$_SERVER["REMOTE_ADDR"];
        $_SESSION["USER_AGENT"]=$_SERVER['HTTP_USER_AGENT'];
        $_SESSION["timestamp"] = time();  
      if (isset($_POST['remembre']))
       {
       $expire = time() + 24*3600;
       setcookie('user', $_SESSION['user'], $expire); 
       }
        header('location:indes.php');
    }
  else if ($user->check_login($username,$mdp)==-2)
    {
    echo 'no';
    } 

1 个答案:

答案 0 :(得分:4)

从不使用setcookie()来设置会话状态。您的头文件中应该有session_start()

从不使用md5()extremely brokensha1()位于已批准的邮件摘要功能的NIST列表中(但kind of broken),但是sha2系列更好,sha256()是一个很好的选择,但你需要在线找到它的源代码,因为PHP没有安全的哈希函数。您还需要一个盐,尝试搜索与密码存储相关的10,000多个帖子中的一个。

执行die()后,

ALWYAS header("location: ...");。此函数仅修改HTTP响应标头,脚本仍然执行

整个会话必须通过HTTPS。目前您可能违反了OWASP A9。是的,StackOverflow声称OWASP和they don't care