Php 连接到数据库时防止SQL注入

Php 连接到数据库时防止SQL注入,php,mysql,validation,mysqli,sql-injection,Php,Mysql,Validation,Mysqli,Sql Injection,最初连接到mySQL数据库时是否需要验证用户输入?考虑PHP中的以下示例,其中基于数据库的用户输入(例如,通过允许管理员更改存储在服务器上的文件的数据库凭据的表单),对数据库进行初始连接: $mysqli=new-PDO('mssqli:host='.$请求['host'.];dbname='.$请求['db'.],$请求['username'],$请求['password']) 是否需要验证$\u请求变量,即是否可以在此处进行SQL注入?如果是,有没有办法参数化此命令? 谢谢你的帮助。 问候

最初连接到mySQL数据库时是否需要验证用户输入?考虑PHP中的以下示例,其中基于数据库的用户输入(例如,通过允许管理员更改存储在服务器上的文件的数据库凭据的表单),对数据库进行初始连接:

$mysqli=new-PDO('mssqli:host='.$请求['host'.];dbname='.$请求['db'.],$请求['username'],$请求['password'])

是否需要验证$\u请求变量,即是否可以在此处进行SQL注入?如果是,有没有办法参数化此命令? 谢谢你的帮助。 问候

是否需要验证$\u请求变量

至少这是个好主意

SQL注入可以在这里进行吗

这种代码唯一合理的情况是当用户也是数据库所有者时。因此,他几乎不愿意将其注入已被允许进入的数据库。而且,严格地说,没有要注入的SQL

如果是,有没有办法参数化此命令


您应该有一个包含非SQL的conn数据的.ini文件,这样就不会有SQL注入攻击的风险(这是一种特殊类型的风险)。然而,像这样使用未经验证的用户输入可能还有其他风险。(例如,如果
$\u REQUEST['host']
包含一个
?)请考虑:攻击者拥有一个已被破坏的政府sql server的地址,并看到允许他指定所有这些值的表单。你会允许你的服务器成为攻击者的代理,当联邦调查局来敲门时,它会到你的地址。天哪。这个设计的目的是什么?当然,可以对其进行消毒,但您需要的是验证,以将输入仅限于特定字符串。