关于PHP入侵的防范,懂得进来指教一二,谢谢

fnaps 2005-09-15 05:46:29
现在通过黑客软件入侵的软很多,我们应该如何防范?如何做到页面请求的监控?另mysql注入要防范除了对请求的值做判断,排除<,/,"等字符外,还有哪些方法?
...全文
272 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
fnaps 2005-11-08
  • 打赏
  • 举报
回复
看来SQL注入的防范,大家都有心得,有谁有通过饶过别人的后台,通过其上传功能上传木码程序的。
PcVSBirds 2005-09-22
  • 打赏
  • 举报
回复
liuwl(美丽克星)赞成呵呵
select pwd from user where name='".$name."'
然后判断获取的纪录中的 pwd字段再做判断呵呵
ashchen 2005-09-20
  • 打赏
  • 举报
回复
俺一般用
sha1,md5慢一点
liuwl 2005-09-19
  • 打赏
  • 举报
回复
防注入其实很简单。
这里是PHP版,我给大家讲一下ASP中我是如何防注入的。
比如一个用户表,登陆过要用到这个SQL语句
select * from Users where username='' and password=''
一般的程序员都不做任何处理,其实应该处理过。最简单的方法是这样的。
我给大家讲一下Users的表结构
Id
username用户名,明文
Auth_username用户名,密文
password密码密码文
其实大家将用户名也给他保存一个密文,比如值为md5(username)
然后登陆的时候用这样一个SQL 语句
select * from Users where Auth_username='md5(Request.Form("username"))' and password='md5(提交的密码)'
这样在username字段,不管你有没有加什么注入字符,都给你转成MD5了,是神仙也注入不了了。
而且这个功能仅仅是在表里加了一个字段,没什么浪费。
这样有些人会说用MD5会不会造成两个不同的username的MD5密文却是一样的呢。有这种可能。不过概率实在太小。
然后有人会说你这个查询的时候将注入封掉了,那插入数据怎么办。插入数据用这段代码好了。
用ADO直接插入,不用SQL语句.
set rs=server.createobject("adodb.recordset")

rs.Open "users",conn,1,3
rs.addnew

rs("username")=username
rs("Auth_username")=md5(username)
rs("password")=md5(password)

rs.update
rs.close

这只是简单的描述。用这种思路从来没有被注入过。之所以被注入,是因为我们没有花脑子去想。单凭过滤。有时候有些字符无辜的被过滤了。
fnaps 2005-09-19
  • 打赏
  • 举报
回复
上传功能的防范,没人知道怎么防范吗?
fnaps 2005-09-17
  • 打赏
  • 举报
回复
除了sql防范外,还有类似上传组件入侵的。只通过对扩展名验证好像不怎么好用。还要怎么验证呢?
有哥 2005-09-17
  • 打赏
  • 举报
回复
intval()、addslashes()是我常用的方法。
黑夜路人 2005-09-16
  • 打赏
  • 举报
回复
http://blog.csdn.net/heiyeshuwu/archive/2005/06/14/394225.aspx
http://blog.csdn.net/heiyeshuwu/archive/2005/07/20/429880.aspx
Cain 2005-09-16
  • 打赏
  • 举报
回复
嗯,去参观一下
wangguan007 2005-09-16
  • 打赏
  • 举报
回复
使用SSL,我也正在研究
ashchen 2005-09-16
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/TopicView.asp?id=4244579

参看我的发言
fnaps 2005-09-16
  • 打赏
  • 举报
回复
难道就没高手了?

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧