Php 仅使用addslashes(string)就可以防止SQL注入吗?
可能重复: 如果没有,我使用了mysql\u escape\u字符串,它会在单词中添加字符,如\r\n,我不希望这样。不,这不安全。改用mysql\u real\u escape\u字符串。它不应该添加任何超出转义字符串所需的内容 这也适用于其他数据库:使用特定于扩展的转义函数。不,addslashes不够好。mysql\u escape\u字符串不一定足够好。使用Php 仅使用addslashes(string)就可以防止SQL注入吗?,php,mysql,Php,Mysql,可能重复: 如果没有,我使用了mysql\u escape\u字符串,它会在单词中添加字符,如\r\n,我不希望这样。不,这不安全。改用mysql\u real\u escape\u字符串。它不应该添加任何超出转义字符串所需的内容 这也适用于其他数据库:使用特定于扩展的转义函数。不,addslashes不够好。mysql\u escape\u字符串不一定足够好。使用 您是否喜欢它添加的内容并不重要,它只会转义字符以确保查询语法有效。如果这妨碍了您的工作,则说明您做错了。您还可以选择使用mysq
您是否喜欢它添加的内容并不重要,它只会转义字符以确保查询语法有效。如果这妨碍了您的工作,则说明您做错了。您还可以选择使用mysqli函数和准备好的语句。这从一开始就基本上避免了这个问题,因为所有的引号都被视为数据的一部分。防止SQL注入的最佳方法是将prepared语句与or一起使用。mysql\u real\u escape\u string不会向最终数据添加任何内容。如果这种情况发生在你身上,请另提一个问题,可能还有其他问题。如果你在mysql\u real\u escape\u字符串添加内容时遇到问题,请确保禁用Magic Quotes。它位于你的php.ini文件中:@michaeltonchev它确保以正确的方式为SQL字符串转义所有内容,不仅仅是引用。这里有一个很好的解释: