所以我有一个php表单处理文件;说出文件名process.php
,代码为
<?php
$value = $_POST['string']; //Assume string is safe for database insertion
$result = mysql_query("INSERT into table values {$value}");
if($result) {
return true;
} else {
return false;
}
?>
理想情况下,只有登录我网站的人才可以发送该POST请求以执行该插入。但是在这里,任何知道这个处理文件的路径和发送的请求的人都可以从任何域发送任何欺骗性POST请求(如果我没有错)。这将导致将不需要的数据插入数据库。
我做的一件事是,在插入之前,我检查了用户是否登录。如果没有,我忽略POST请求。但是我究竟应该如何保护我的处理文件免受攻击?
答案 0 :(得分:0)
目前,这很容易受到SQL注入攻击。确保使用参数化查询库(如PDO
)来插入文件和mysql“blob”或“long blob”类型。你永远不应该使用mysql_query()
。
您还应该跟踪用户访问控制的用户ID。看起来你并没有考虑到这一点。