post上的php自动字符串转义
我正在为我的朋友建立一个整洁的网站,我注意到该网站自动避开了文本框、文本区域等的输入 这是否意味着当我想在mysql数据库中插入数据时,我不必添加post上的php自动字符串转义,php,mysql-escape-string,escapestring,Php,Mysql Escape String,Escapestring,我正在为我的朋友建立一个整洁的网站,我注意到该网站自动避开了文本框、文本区域等的输入 这是否意味着当我想在mysql数据库中插入数据时,我不必添加mysql\u real\u escape\u string,我可以保持原样 或者这是一个潜在的安全风险?正如评论者所指出的,mysql()api不是首选。使用MySQLi-并使用准备好的语句。其美妙之处在于——无论插入什么——它都不能改变原始SQL(在程序员不知情的情况下改变SQL才是真正的安全问题) 此外,在所有岗位上漏掉信息通常会令人恼火。如果g
mysql\u real\u escape\u string
,我可以保持原样
或者这是一个潜在的安全风险?正如评论者所指出的,mysql()api不是首选。使用MySQLi-并使用准备好的语句。其美妙之处在于——无论插入什么——它都不能改变原始SQL(在程序员不知情的情况下改变SQL才是真正的安全问题) 此外,在所有岗位上漏掉信息通常会令人恼火。如果gpc_magic_quotes处于启用状态,我通常通过禁用或使用条带斜杠来关闭此功能。但是,这是我个人的偏好
因此,请尝试将代码升级到MySQLi语法。如果绝对不可能,请使用stripslashes,然后使用mysql\u real\u escape\u string(这将考虑您使用的语言编码…)转义发生在何处并不重要,不管是在何时发布表单,还是在何时对数据库进行实际查询<代码>mysql*函数正在被弃用,不应再运行 如果你想要整洁、安全的网站。学习使用
mysql_i
(i
表示“改进”)或者更好的是,使用称为PDO接口的数据库无关接口。这两者都会给你带来所需的整洁和额外的安全性提升
您可以获得PDO的教程
对于Mysqli使用Mysqli prepared语句,而不是mysql语句,这样做会很好。永远不要依赖别人的架构默认设置来确保安全。在任何环境中,永远。