6 个常见的 PHP 安全性攻击
了解常见的 PHP 应用程序安全威胁,可以确保你的 PHP 应用程序不受攻击。因此,本文将列出 6 个常见的 PHP 安全性攻击,欢迎大家来阅读和学习。
1、SQL 注入 SQL 注入是一种恶意攻击,用户利用在表单字段输入 SQL 语句的...
了解常见的 PHP 应用程序安全威胁,可以确保你的 PHP 应用程序不受攻击。因此,本文将列出 6 个常见的 PHP 安全性攻击,欢
迎大家来阅读和学习。
1、SQL 注入
SQL 注入是一种恶意攻击,用户利用在表单字段输入 SQL 语句的方式来影响正常的 SQL 执行。还有一种是通过 system()或 exec()
命令注入的,它具有相同的 SQL 注入机制,但只针对 shell 命令。
$username = $_POST['username'];
$query = "select * from auth where username = '".$username."'";
echo $query;
$db = new mysqli('localhost', 'demo', ‘demo', ‘demodemo');
$result = $db->query($query);
if ($result && $result->num_rows) {
echo "<br />Logged in successfully";
} else {
echo "<br />Login failed";
}
上面的代码,在第一行没有过滤或转义用户输入的值($_POST['username'])。因此查询可能会失败,甚至会损坏数据库,这要看
$username 是否包含变换你的 SQL 语句到别的东西上。
防止 SQL 注入
选项:
使用 mysql_real_escape_string()过滤数据
手动检查每一数据是否为正确的数据类型
使用预处理语句并绑定变量
使用准备好的预处理语句
分离数据和 SQL 逻辑
预处理语句将自动过滤(如:转义)
把它作为一个编码规范,可以帮助团队里的新人避免遇到以上问题
$query = 'select name, district from city where countrycode=?';
if ($stmt = $db->prepare($query) )
{