我的网站老是被sql注入攻击怎么办?
发布网友
发布时间:2022-04-07 22:03
我来回答
共3个回答
懂视网
时间:2022-04-08 02:25
SQL注入攻击的根源是因为SQL规范的漏洞,但是,因为规范的长期存在以及使用,几乎已经不太可能去修改规范了,只能够从开发者本身去避免攻击,虽然SQL注入之前很严重,但现在相对控制的很好,这里仅仅作为一种学习的内容。
测试过程如下:
1:搭建PHP,mysql开发环境,可以详见我的另一篇博客自定义开发PHP环境
2:添加数据库,表,以及表内容。
3:分别测试
万能密码,万能用户名
数字注入
测试如下:
万能密码:password ’ or 1=’1 (password可以任意的填写,注:这里如果粘贴的话会有编码问题,自己修改)
万能用户名:xx’ union select * from testuser/*(mysql5.6版本测试没有此问题)
数字注入同用户名注入,仅数字提交。
如何防止SQL注入呢?
1:修改服务器配置:修改magic_quotes_gpc 设置为on(php5.3以上版本没有这个设置)
2:在代码层进行修改,可以使用更为严格的验证方法;
3:使用pdo预编译处理。
网络攻防之SQL注入攻击
标签:网络 安全
热心网友
时间:2022-04-07 23:33
<%
'----实现get请求的注入的拦截-----
dim sql_injdata,Sql_Inj,SQL_Get,Sql_DATA
SQL_injdata = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
SQL_inj = split(SQL_Injdata,"|")
If Request.QueryString<>"" Then
For Each SQL_Get In Request.QueryString
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language=JavaScript>alert('安全警告:请勿非法注入,你的IP已被记录,已发送管理员!');history.back(-1)</Script>"
Response.end
end if
next
Next
End If
'----我们还要过滤post请求,所以我们还得继续考虑request.form,这个也是以数组形式存在的,我们只需要再进一次循环判断即可-----
If Request.Form<>"" Then
For Each Sql_Post In Request.Form
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language=JavaScript>alert('安全警告:请勿非法注入,你的IP已被记录,已发送管理员!');history.back(-1)</Script>"
Response.end
end if
next
next
end if
%>
把这段代码,加在你的连接数据库文件时太OK啦,
还有你看看你网站的服务器安全吗?如果服务器别的网站有漏洞还是一样可以加<iframe>,我也就知道这么多啦,希望能帮上你的忙!!
热心网友
时间:2022-04-08 00:51
被盗联!修改原代码!