我是靠谱客的博主 饱满猫咪,最近开发中收集的这篇文章主要介绍【网站安全】网站通常面临的几种安全威胁及应对方式【总结版】,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

上次写的文章连我自己都觉得乱,所以,这次写一篇文章来总结一下自己的观点。


【一、网站存储及http传输机制导致的危险】


用户访问网站通常的流程:



在这个流程里面,有两点非常致命:

1、http协议是明文传输,就是说,假如你进入一个登录页面的话,你输入的帐号及密码默认情况下是明文传输且可以被其他人用抓包工具截获,由此可以引申很多攻击方式;

2、http是无状态连接,就靠给每一个用户分配一个sessionid,放在cookie里面,每次都用htpp明文传送,然后服务端以sessionid为凭证读取相关session,由此也可以引申出很多攻击方式。



攻击方式分类:

1、伪造cookie(可以通过抓取cookie,也可以直接猜服务端的sessionid,伪造一个sessionid);

2、重放攻击,抓取一个数据包,分文不改重新发送数据包;

3、篡改数据包,抓取一个数据包,修改里面的数据,重新发送;

4、中间人攻击,譬如:客户经常访问一个网站,例如: www.xxx.com,我们就伪造一个钓鱼网站,名为:www.xxx2.com,然后通过某种方式(譬如:客户上了我们放毒的不健康网站,将客户的host文件 www.xxx.com=>www.xxx2.com不知道还有没有效果)让你访问钓鱼网站并填写相关信息。


这些涉及到协议层面了,要说防范的话,那么非对称算法加密密钥,对称算法解密数据,采用时间戳防止重放攻击,采用数字签名防止数据被篡改---你会发现,其实你在造一个https的轮子,还不一定比https好。


所以,建议直接用https。


【二、浏览器对网页的解析机制导致的注入点】

网页都是文本,然后浏览器将文本解析成为脚本及dom树----即最大根源是,字符串是数据也是程序。


【例子1】

譬如说:

[html]  view plain copy
  1. <%  
  2. String str="<script>alert('ok');</script>";  
  3.   
  4. %>  
  5. <%=str%>  

大家认为最后出现什么?

没错,最后会弹出一个alert窗口,里面的内容是“ok”,就是说,用户的输入可以被浏览器解析成为javascript脚本或者dom树,这种方式的威胁相对更容易解决。


【例子二】

某些浏览器要导入图片的时候,假如图片的Mime类型与后缀名不符合,将会根据Mime类型解析图片;

大家假如有试过的话,就可以知道在一幅图片里面加入一些脚本,譬如:

在图片1.jpg里面加入(将图片的content-type设置为html)

[html]  view plain copy
  1. <script>alert('ok');</script>  
然后用

[html]  view plain copy
  1. <img src='1.jpg'/>  

哪些浏览器一定会中招?没错,ie6、7会中招

【防范】

1、对于需要完全显示客户输入的场合(譬如:留言,即使用户输入特殊字符也要显示出来),那么就设立白名单,除白名单外所有字符都用

&#xxx;

的方式显示,那就安全的多。


2、对于img及a超链接等标签要特别注意,因为他们的src及href都可以作为javascript来解析,某些浏览器会将里面的字符串的八进制,16进制--xxxx等形式转化成字符,

所以,javascript:必须过滤,也必须过滤,具体过滤规则可以自行设定。

【三、程序员的认为疏忽】

1、入行时看到sql注入似乎是非常大的问题,其实根本不是问题,只要不拼sql(拼的话就不要用用户提供的字符串),用参数化查询,那么就什么问题都不会发生了。


【四、其他】


经验有限,只能写到这里,下一篇就会实现某些方法来过滤或者转义危险字符。



最后

以上就是饱满猫咪为你收集整理的【网站安全】网站通常面临的几种安全威胁及应对方式【总结版】的全部内容,希望文章能够帮你解决【网站安全】网站通常面临的几种安全威胁及应对方式【总结版】所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部