关于 Cookies 注入防范

Cookies 注入原理:

ASP 中的 Request 对象可以接受 GET、POST、COOKIES 请求,有时程序员偷懒,将其简化写成 **=Request("参数") 的格式接受数据,此时WEB接受数据时先以 GET 方式接受,如果不匹配再以 POST 方式接受,最后再以 Cookies 方式接受,即使防注入系统过滤了 GET 和 POST 注入,如果接受方式没有指定,造成了 Cookies 注入,这样简化写代码同时还会影响处理的速度。

Cookies 注入防范:

为了更好的理解,来段代码,文件名 Articles.asp:

id=request("id")
sql="select * from Articles where id="&id&""
set rs=conn.execute(sql)

其中 id 没有指定接受方式直接接受传递过来的 id 值,然后带入 SQL 语句中,如果程序中包含了防 GET、POST 注入,那么 GET、POST 注入无效,但是可以使用 Cookies 来注入,将接受 id 值指定接受 GET 方式,指定后就不能用 POST 和 Cookies 来接受参数了,即可达到防注入,代码如下:

id=request.QueryString("id")