是否有替代PHP的mysql_real_escape_string。我想删除在文本框中输入的任何javascript或php代码。
答案 0 :(得分:5)
这不是mysql_real_escape_string做或做的(函数现在是deprecated)。 mysql_real_escape_string的替代方法是使用预准备语句,例如使用PDO或MySQLi。
然而,这与从字符串中剥离Javascript或PHP代码完全无关 - 也是;识别“Javascript”或“PHP”可能比较困难。
这里真正的问题是;你为什么要脱掉它?危险不在于保存数据,危险在于显示数据。您永远不应该执行用户输入的代码,无论是Javascript还是PHP。
对于Javascript,禁止输出中的HTML标记就足够了。将功能视为strip_tags,甚至更好,htmlspecialchars。防止PHP执行变得更加容易;只需不使用方法eval。
答案 1 :(得分:0)
mysql_real_escape_string
是一个函数,可确保您的字符串被正确转义以进入数据库。进入数据库的内容正是您的开始。
删除或更改字符串的任何内容都不能替代mysql_real_escape_string
。换句话说,它会改变字符串,而不是逃避它。
如果您想更改要存储的字符串,可以通过strip_tags
或preg_replace
运行。
但是(如果它适合您的情况),请在显示之前考虑从db检索后通过htmlspeciachars
运行字符串。
答案 2 :(得分:0)
mysql_real_escape_string用于避免SQL注入攻击 - 人们尝试对数据库执行SQL命令。 您仍然需要使用此 - (或转移到PDO预处理语句等)。
mysql_real_escape_string并不是一种清理用户输入(例如html,javascript)的方法,这会使您的网站对XSS攻击开放。为此,我建议Html Purifier。
答案 3 :(得分:-1)
您可以使用strip_tags()
- 它会删除所有html标记,包括javascripts。