安全的方式来插入和检索数据到MySQL

问题描述:

嗯,我想知道关于PHP和MySQL的一些提示。安全的方式来插入和检索数据到MySQL

当我得到用户,然后我用下面的验证数据:

mysql_real_escape_string() 
or 
htmlentities() 
or 
trim() 

它是一个安全的方式从用户获得数据?

什么是从Mysql数据库中检索数据的最佳方法?我用nl2br(),但如果我提交I'm here然后它显示I\'m here。它应该显示I'm here。我不知道什么是正确的方法。

+0

这两个函数都没有验证。并且使用这些函数的输出是否安全取决于您如何使用这些值。那么你如何使用这些功能呢? – Gumbo 2012-02-05 16:43:18

+2

切换到PDO,请请关闭魔术引号,以提高人性。 – PeeHaa 2012-02-05 16:44:02

+0

@PeeHaa感谢这个想法。但我认为它已经从php 5.0关闭。是吗? – user1161867 2012-02-05 16:45:47

将数据插入数据库时​​,您将使用mysql_real_escape_string;而不是htmlentities。或甚至更好,MySQLi - 或甚至更​​好,PDO

当您从数据库输出可能不安全的数据时,您可能会使用htmlentities

要停止斜杠,turn magic quotes off

+0

谢谢@minitech。所以htmlentities是安全的?任何其他方法? – user1161867 2012-02-05 16:47:28

+0

@ user1161867:是的,它对HTML输出是安全的。只记得使用它。哦,还有['htmlspecialchars'](http://php.net/htmlspecialchars)。 – Ryan 2012-02-05 16:49:33

+0

我可以使用这两个功能吗? – user1161867 2012-02-05 16:52:28