php输入安全性


php input security

可能重复:
PHP:终极清洁/安全功能

当我插入用户时,我得到了以下代码:

  function RegisterUser($userName, $pass, $email, $reputation, $role, $ban, $date, $ip, $numberAttempts, avatar)//'anonym', 'false',  $myDate,$ip, 0, ''
  {
     $userName= SanitizeString($userName);
     $pass= SanitizeString($pass);
     $email= SanitizeString($email);
      $userName=mysql_real_escape_string($userName);
      $pass=mysql_real_escape_string($pass);
      $email=mysql_real_escape_string($email);

消毒功能如下:

   function SanitizeString($var)
   {
       //$var=stripslashes($var);
       $var=htmlentities($var, ENT_QUOTES, 'UTF-8');
       $var=strip_tags($var);
       return $var;
   }

我是否采取了正确的方式来保护自己免受恶意攻击(Xss攻击、javascript攻击、sql注入(。。

我是否采取了正确的方式来保护自己免受的恶意攻击

肯定

保护并不是用一种神奇的方法让所有的攻击消失在一股烟雾中
不同的攻击需要不同的场景。一种通常用于安全的避孕套。你会用避孕套来确保你的钱吗?我想-没有。
这里也是

此外,无意识的混合保护技术会破坏您的数据
例如,如果您的管理员能够从某个联机编辑器中发布HTML,那么这个SanitizeString将使其不可能。

事实上,您的函数试图只保护XSS,而且显然是错误的方式
对于其他攻击,你需要其他东西。我在这个答案中描述了SQL注入保护。