PHP过滤器输入转义输出

PHP过滤器输入转义输出,php,Php,如果我在mysql中添加\u real\u escape\u字符串并添加如下斜杠会更好吗: $username = mysql_real_escape_string(trim(addslashes($_POST['username']))); htmlentities(stripslashes($v)) 在这个密码变量中是否需要: $password = md5(mysql_real_escape_string(trim($_POST['password']))); 我还读了一些关于从数据

如果我在mysql中添加\u real\u escape\u字符串并添加如下斜杠会更好吗:

$username = mysql_real_escape_string(trim(addslashes($_POST['username'])));
htmlentities(stripslashes($v))
在这个密码变量中是否需要:

$password = md5(mysql_real_escape_string(trim($_POST['password'])));
我还读了一些关于从数据库安全检索数据的主题。。。 它说最好检索这样的数据:

$username = mysql_real_escape_string(trim(addslashes($_POST['username'])));
htmlentities(stripslashes($v))

它真的是安全所必需的吗?

去掉addslashes,这就是mysql\u real\u escape\u string()的用途


如果要对密码进行哈希运算,也不需要真正地转义密码。尽管不要使用MD5,等等,我不会打开那罐蠕虫。

摆脱addslashes,这就是mysql\u real\u escape\u string()的用途

如果要对密码进行哈希运算,也不需要真正地转义密码。尽管不要使用MD5,等等,我不会打开那罐蠕虫。

  • 不,不要使用addslashes。它不会使字符串更安全或更好,但会增加复杂性
  • 转义要存储在数据库中的字符串。因此,不要使用md5(mysql\u real\u escape\u string($password)),而是使用mysql\u real\u escape\u string(md5($password))
  • 考虑在密码的开始和结束处允许空格,这样就不会修剪它们
  • 为了安全起见,在存储密码时使用salt
      • 不,不要使用addslashes。它不会使字符串更安全或更好,但会增加复杂性
      • 转义要存储在数据库中的字符串。因此,不要使用md5(mysql\u real\u escape\u string($password)),而是使用mysql\u real\u escape\u string(md5($password))
      • 考虑在密码的开始和结束处允许空格,这样就不会修剪它们
      • 为了安全起见,在存储密码时使用salt

      如果使用
      mysql\u real\u escape\u string,则无需使用
      addslashes

      此外,如果在将输入输入数据库之前对输入进行了清理,则从数据库检索数据时无需删除斜杠

      就我个人而言,我经常对输入进行消毒


      md5可能也不是最好的解决方案,使用sha-128之类的工具如果使用mysql\u real\u escape\u string

      此外,如果在将输入输入数据库之前对输入进行了清理,则从数据库检索数据时无需删除斜杠

      就我个人而言,我经常对输入进行消毒


      md5可能也不是最好的解决方案,使用sha-128之类的东西,它真的是安全所必需的吗

      -对

      您可以在进入数据库的过程中对数据进行清理(使用mysql\u real\u escape\u字符串),以防止意外的数据损坏或故意的sql注入

      您可以在退出时转义数据(使用htmlentities),以防止跨站点脚本(xss)


      两者都非常不同,而且非常重要。

      这真的对安全有必要吗

      -对

      您可以在进入数据库的过程中对数据进行清理(使用mysql\u real\u escape\u字符串),以防止意外的数据损坏或故意的sql注入

      您可以在退出时转义数据(使用htmlentities),以防止跨站点脚本(xss)


      两者都非常不同,而且非常重要。

      是的,我从来没有使用过addslashes,但是我看到一些图坦卡蒙展示了这样一个例子。。。为什么不使用md5?@Sjoerd,@cthulhu:老实说,我听很多人说md5不好是因为碰撞问题。我不认为这是你的普通网站真正的问题。我会更担心MD5数据库,比如说,是的,我从来没有使用过addslashes,但是我看到一些tut展示了这样一个例子。。。为什么不使用md5?@Sjoerd,@cthulhu:老实说,我听很多人说md5不好是因为碰撞问题。我不认为这是你的普通网站真正的问题。我会更担心MD5数据库,比如“它真的对安全有必要吗?”我只问了htmlentities(…mysql\u real\u escape\u string肯定需要:)谢谢“它真的对安全有必要吗?”我只问了HTMLenties(…mysql\u real\u escape\u string肯定需要:)感谢mysql\u real\u escape\u字符串本身并不会使任何东西变得“安全”。它只适用于周围的引号。当您不/不能添加引号时-mysql\u real\u escape\u string不会有任何帮助。将数据插入数据库时,请使用准备好的语句。更容易、更干净、更防黑客攻击。当您想要检索和显示数据时,请使用HTMLEntiles。请注意,mysql\u real\u escape\u字符串本身并不会使任何内容变得“安全”。它只适用于周围的引号。当您不/不能添加引号时-mysql\u real\u escape\u string不会有任何帮助。将数据插入数据库时,请使用准备好的语句。更容易、更干净、更防黑客攻击。要检索和显示数据时,请使用HTMLEntiles。