我正在为我的朋友建立一个简洁的网站,我注意到该网站自动转义了来自文本框、文本区域等的输入。
这是否意味着当我想在我的 mysql 数据库中插入数据时我不必添加mysql_real_escape_string
,我可以保持原样?
或者这是一个潜在的安全风险?
我正在为我的朋友建立一个简洁的网站,我注意到该网站自动转义了来自文本框、文本区域等的输入。
这是否意味着当我想在我的 mysql 数据库中插入数据时我不必添加mysql_real_escape_string
,我可以保持原样?
或者这是一个潜在的安全风险?
正如评论者所指出的,mysql() api 不是首选。使用 MySQLi - 并使用准备好的语句。这样做的好处是——无论你插入什么——它都不能改变原始的 SQL(在程序员不知情的情况下改变 SQL 是真正的安全问题)。
此外,在所有帖子上转义输入通常会很烦人。我通常通过禁用php.ini 中的 gpc_magic_quotes 指令或在 gpc_magic_quotes 开启时使用 stripslashes 来关闭它。但是,这是我个人的喜好。
因此,请尝试将代码升级为 MySQLi 语法。如果绝对不可能,请使用 stripslashes 然后使用 mysql_real_escape_string (这将考虑到您使用的语言编码......)