首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测web应用程序中的漏洞以及如何继续

问检测web应用程序中的漏洞以及如何继续
EN

Stack Overflow用户
提问于 2010-02-09 05:38:48
回答 5查看 720关注 0票数 4

有什么方法可以检测PHP/MySQL web应用程序中的漏洞(检查GET、POST、COOKIE数组中的某些字符或代码片段/使用具有常见漏洞模式的数据库的库,如果存在的话?)当检测到一个时,我应该如何继续?

例如,如果有人试图使用GET请求方法在我的PHP/MySQL web应用程序中查找SQL注入,我是否应该将该用户执行的操作存储在数据库中,让该应用程序向我发送一封电子邮件,IP禁止该用户,并向他/她显示一条消息:“对不起,我们检测到来自您的帐户的有害操作,我们将对其进行审查。您的帐户已被禁用,并且您的IP地址中的某些功能可能已被禁用。如果这是一个错误,请将所有详细信息通过电子邮件发送给我们。”

谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-02-09 06:03:05

脑海中浮现三件事:

通过使用Suhosin

进行

  1. 防御性编码、清理所有输入、准备sql语句和使用您站点的sql安全性。

如果您觉得一个完全成熟的入侵检测系统太多了,可以尝试一下PHP IDS,因为它可以满足您的开箱即用需求。请注意,在PHP级别检测入侵可能已经为时已晚,无法防止攻击。

在入侵成功的情况下,我想最好的办法是让服务器离线,看看造成了什么破坏。你可能不得不考虑雇佣某人对机器进行法医分析,以防你需要收集合法可用的证据。

如果您觉得需要对未成功的入侵尝试做出反应,并获得恶意用户的IP,请找到ISP,并尽可能详细地告知他入侵尝试。大多数ISP在这些情况下都有滥用联系人。

票数 2
EN

Stack Overflow用户

发布于 2010-02-09 05:48:25

只需在所有的$_REQUEST和$_COOKIE变量上使用strip_tags()来处理出现在这些变量中的代码,至于SQL,您可能需要编写一个查询-如正则表达式之类的,但这应该不是问题,因为您应该始终对查询中的所有变量执行mysql_real_escape_string($str)。试着这样做吧。

代码语言:javascript
复制
function look_for_code_and_mail_admin($str) {
    $allowed_tags = "<a>,<br>,<p>";
    if($str != strip_tags($str, $allowed_tags)) {
        $send_email_to = "some@bodys.email";
        $subject = "some subject";
        $body = "email body";
        mail($send_email_to,$subject,$body);   
    }
    return($str);
}
票数 1
EN

Stack Overflow用户

发布于 2010-02-09 05:49:02

你的问题是双重的,我将回答第二部分。

记录所有内容,但不禁止或显示任何消息。假阳性的情况下会很尴尬。作为一般规则,尝试构建一个可以毫无问题地处理任何类型的用户输入的应用程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2225047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档