安全的方式来插入和检索数据到MySQL
嗯,我想知道关于PHP和MySQL的一些提示。安全的方式来插入和检索数据到MySQL
当我得到用户,然后我用下面的验证数据:
mysql_real_escape_string()
or
htmlentities()
or
trim()
它是一个安全的方式从用户获得数据?
什么是从Mysql数据库中检索数据的最佳方法?我用nl2br()
,但如果我提交I'm here
然后它显示I\'m here
。它应该显示I'm here
。我不知道什么是正确的方法。
将数据插入数据库时,您将使用mysql_real_escape_string
;而不是htmlentities
。或甚至更好,MySQLi - 或甚至更好,PDO。
当您从数据库输出可能不安全的数据时,您可能会使用htmlentities
。
要停止斜杠,turn magic quotes off。
谢谢@minitech。所以htmlentities是安全的?任何其他方法? – user1161867 2012-02-05 16:47:28
@ user1161867:是的,它对HTML输出是安全的。只记得使用它。哦,还有['htmlspecialchars'](http://php.net/htmlspecialchars)。 – Ryan 2012-02-05 16:49:33
我可以使用这两个功能吗? – user1161867 2012-02-05 16:52:28
这两个函数都没有验证。并且使用这些函数的输出是否安全取决于您如何使用这些值。那么你如何使用这些功能呢? – Gumbo 2012-02-05 16:43:18
切换到PDO,请请关闭魔术引号,以提高人性。 – PeeHaa 2012-02-05 16:44:02
@PeeHaa感谢这个想法。但我认为它已经从php 5.0关闭。是吗? – user1161867 2012-02-05 16:45:47