Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何记录试图进行sql注入的人_Php_Sql_Security_Logging_Code Injection - Fatal编程技术网

Php 如何记录试图进行sql注入的人

Php 如何记录试图进行sql注入的人,php,sql,security,logging,code-injection,Php,Sql,Security,Logging,Code Injection,这里有很多方法可以保护您的代码免受SQL注入攻击。但是我需要的是如何记录sql注入攻击,以便我们可以将他(攻击者用户)添加到黑名单用户数据库中 这里我需要的是一种函数,如果有sql注入,它将返回true <?php if(isset($_POST['username'])){ // need a function here which will return true if there's // a sql injection else false } ?> 编辑:此答案是在问题发

这里有很多方法可以保护您的代码免受SQL注入攻击。但是我需要的是如何记录sql注入攻击,以便我们可以将他(攻击者用户)添加到黑名单用户数据库中

这里我需要的是一种函数,如果有sql注入,它将返回true

<?php
if(isset($_POST['username'])){
// need a function here which will return true if there's
// a sql injection else false
}
?>

编辑:此答案是在问题发生重大变化之前做出的。虽然仍然有效,但它不再针对OP的具体情况

SQL注入是最容易修复的web应用程序漏洞之一。识别潜在攻击、记录这些攻击以及维护和管理具有使用拒绝功能的用户黑名单的问题空间是一个复杂得多的编程练习

学习正确使用<代码>参数化查询< /代码>,SQL注入不是你需要考虑的事情。在PHP中,您可以使用

mysqli
PDO
库来实现这一点。这里有大量的问题可以解决这个问题,你可以通过谷歌搜索“参数化查询”或“准备好的语句”找到更多的教程,你可以用它们来检测安全攻击(不仅仅是SQL注入)并添加自定义行为。在我的例子中,我在每个请求开始时运行PHP-IDS。如果检测到问题,我将登录到数据库,向用户返回一条通用错误消息,然后执行die()


请注意,PHP-IDS不会检测所有SQL注入问题。这不可能自动完成。您仍然需要正确处理您的查询。

不要试图针对如此严重的问题自行制定解决方案。可能会在你知道的地方回来咬你


相反,请尝试从服务器日志中查看用户所做的查询和请求的类型,并据此做出决定。(用于获取请求)。对于POST请求,如前所述,您可以使用它。

为什么要这样做?如果你正确地逃避输入或使用预先准备好的语句,你根本不必关心这个问题。”…我不必关心这个…-你不必阻止注射,但发生时你必须将罪犯列入黑名单?看起来你必须关心这个问题。如果你找到了解决方案,就不要将日志写入数据库。有人可以使用SQL注入删除您的日志表。他们可能还会让你的桌子上满是被列入黑名单的用户。哈尔。@RobHruska我说的“我不必在意”的意思是,如果有人进行任何SQL注入,我不必在意,因为我的脚本具有抵御该攻击的安全性。我想做一个黑名单sql注入器日志。