post上的php自动字符串转义

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数据库中插入数据时,我不必添加
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语句,这样做会很好。永远不要依赖别人的架构默认设置来确保安全。在任何环境中,永远。