web 安全

一. sql注入
首先第一个危害就是没有账号密码直接伪造登录,通过写恒等式(1=1)加 注释(–)
更屌的是通过错误信息(服务器不应该将错误信息暴露给用户)来一步步获得整个数据库数据(前端验证都可以被绕过,后台必须验证)
‘ or 1=(SELECT @@version) –
t’ or 1=(SELECT top 1 name FROM master..sysdatabases where name not in (SELECT top 0 name FROM master..sysdatabases))–

对策:1.对输入的参数进行验证
2.对于单引号,双引号,反引号进行转义(转义上php中的mysql_real_escape_string和addslashes 都有缺陷,从根本上杜绝sql注入是不要使用addslashes mysql_real_escape_string (直接调用会使用本地编码集,php5.3之前的问题)这些函数,使用pdo数据库抽象访问层里的参数化查询)
使用pdo的两个好处,sql模板能提高效率,指定数据库编码,转义在数据库server进行防止sql注入。
二. xss (跨站脚本攻击)

http://www.cnblogs.com/bangerlee/archive/2013/04/06/3002142.html
原本总结好的不见了,不想重新码了= =

三. csrf(跨站请求(request)伪造)看慕客视频
当你登录了一个信任的网站,浏览器保存了你的cookie,再访问一个危险网站让你跳到刚才的网站你被识别了所以黑客干了什么就由不得你了
1.get_csrf(为什么不要用get来更新数据,非常不安全) 2.post csrf(伪造一个表单,内部已经将请求用js提交过去了,不要用request来接收参数,低级不安全)
防范:
1: 验证码(用户体验不好)
2:http规定要加referer,但有些浏览器不加怎么办,还可以修改referer
3:token(通常使用的方法就是在每次页面加载时,使用 javascript 遍历整个 dom 树,对于 dom 中所有的 a 和 form 标签后加入 token。这样可以解决大部分的请求,但是对于在页面加载之后动态生成的 html 代码,这种方法就没有作用,还需要程序员在编码时手动添加 token,麻烦。)
做法就是表单加个 hidden的input id = _csrf value= csrfmd5"test". csrf);)然后将这个串保存到用户cookie(除非被xss攻击获得,否则黑客不知道服务器用什么算法来加密所以知道hidden的数据也是没用的)将表单过来的数据再和cookie对比来判断是否为同一个用户。yii框架就是这样防csrf的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值