常见攻击和解决方法
来源:互联网 发布:js清空input的value值 编辑:程序博客网 时间:2024/06/10 04:16
XSS跨站脚本攻击
XSS跨站脚本攻击指攻击者在网页中嵌入客户端脚本(例如JavaScript),当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的,比如获取用户的Cookie,导航到恶意网站,携带木马等。
如何防止XSS跨站脚本攻击:
原则:不相信用户输入的数据
- 将重要的cookie标记为http only,这样的话Javascript 中的document.cookie语句就不能获取到cookie了
- 只允许用户输入我们期望的数据。例如:年龄的textbox中,只允许用户输入数字,而数字之外的字符都过滤掉
- 对数据进行Html Encode 处理。
< 转化为 <、> 转化为 >、& 转化为 &、' 转化为 '、" 转化为 "、空格 转化为
- 过滤或移除特殊的Html标签。例如:
<script>、<iframe>、< for <、> for >、" for
过滤JavaScript 事件的标签。例如 “onclick=”、”onfocus” 等等
很多浏览器都加入了安全机制来过滤XSS注意:攻击代码不一定在
<script></script>
中
CSRF跨站请求伪造
CSRF(XSRF)尽管听起来很想XSS跨站脚本攻击,但是它于XSS完全不同。XSS是利用站点内的信任用户,而CSRF则是通过伪装来自受信任用户的请求来利用受信任的站点。与XSS相比,CSRF攻击不大流行和难以防范,所以比XSS更具危险性。
如何防止CSRF跨站请求伪造:
- 对于web站点,将持久化的授权方法(例如cookie或者HTTP授权)切换为瞬时的授权方法(在每个form中提供隐藏field)。
- “双提交”cookie。此方法只工作于Ajax请求,但它能够作为无需改变大量form的全局修正方法。如果某个授权的cookie在form post之前正被JavaScript代码读取,那么限制跨域规则将被应用。什么叫限制跨域规则呢?限制跨域规则就是:如果服务器需要在Post请求体或者URL中包含授权cookie的请求,那么这个请求必须来自于受信任的域,因为其它域是不能从信任域读取cookie的。上面那个例子的受信任域就是银行网站的某个域,而Mallory发给Bob的链接不是受信任的域。
- 使用Post代替Get。Post方式不会在web服务器和代理服务器日志中留下数据尾巴,然而Get方式却会留下数据尾巴。
- 以上三点都是正对web站点的防御手段,第4点是从用户的角度的防御手段。通过在浏览其它站点前登出站点或者在浏览器会话结束后清理浏览器的cookie来防止CSRF攻击。
SQL注入
所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
如何防止SQL注入:
- 永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双”-“进行转换等。
- 永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取
- 永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接
- 不要把机密信息直接存放,加密或者hash掉密码和敏感的信息
- 应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装
阅读全文
0 0
- 常见攻击和解决方法
- sql注入xss攻击常见形式和解决方法
- SQL注入攻击常见方法和技巧
- SQL注入攻击常见方法和技巧
- 黑客常见攻击手法和步骤
- 常见的Web攻击和防御总结
- 常见漏洞和攻击及防范方法
- 常见的Web攻击和防御总结
- TCP状态和常见攻击方式
- ARP攻击的原理,现象,和解决方法
- github常见操作和常见错误解决方法
- Struts常见异常和解决方法
- stsuts常见错误和解决方法
- struts常见错误和解决方法
- DB2 常见错误和解决方法
- IP分片重组的分析和常见碎片攻击
- 老手段新思维 常见DDOS攻击和防护
- 利用IIS日志检测和分析常见WEB攻击
- 用筛法求之N内的素数
- 第十三周项目1
- Unity 四元数和向量相乘
- C++中this指针的应用
- 一个常见的错误
- 常见攻击和解决方法
- Android简单集成Jiecaovideoplayer
- 当当分库分表(一)
- The Accomodation of Students 二分图判定+匹配
- IO操作-知识概要
- 论我
- pip
- java 读取txt中矩阵
- 再说装饰器模式