嗨,我真的是网络领域的初学者,我想知道是否有人可以指导我在哪里我应该在整个论坛的代码中寻找盲目sql注入漏洞,例如,如果这是漏洞index.php?m=content&c=rss&catid=[valid catid]的漏洞,我应该在代码中哪里寻找验证用户表单和网址输入的部分;我真的是php的初学者,我应该如何修复它。
发布于 2011-01-26 02:03:58
如果您担心SQL注入,那么您的设计就很糟糕。您应该对ADODB或PDO这样的库使用参数化查询。这是毫无疑问的,您可以100%地防止SQL注入。
为了测试盲目的sql,你可以做一些类似的事情:index.php?m=content&c=rss&catid=sleep(30)。
此请求需要30秒才能加载页面。如果您需要一个引号,那么有效负载应该类似于' and sleep(30) or 1='。
要修补此漏洞,您知道catid应该是一个int。因此,您可以在该页面的顶部添加以下行:$_GET['catid']=intval($_GET['catid']);
发布于 2011-01-25 17:52:56
有很多关于php安全的资料可以读到。以下是几个链接:
关于表单输入的问题:首先应该研究和使用的是mysql_real_escape_string。
发布于 2011-01-25 23:47:38
每个$_GET、$_POST、$_COOKIE (甚至是$_SERVER)超级全局输入都必须经过验证,并且不可信。
如果你在你的代码中使用了它们中的任何一个,如果它要到数据库中去,使用mysql_real_escape_string;如果它将在你的网站上直接显示为html (如果它是从数据库中调用的),你应该使用htmlentities,htmlspecialchars,strip_tags等函数来检查XSS。
https://stackoverflow.com/questions/4791825
复制相似问题