一、XSS跨站脚本攻击

XSS跨站脚本攻击指攻击者在网页中嵌入客户端脚本(例如JavaScript),当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的,比如获取用户的Cookie,导航到恶意网站,携带木马等。

如何防止XSS跨站脚本攻击:

原则:不相信用户输入的数据

  1. 将重要的cookie标记为http only,这样的话Javascript 中的document.cookie语句就不能获取到cookie了
  2. 只允许用户输入我们期望的数据。例如:年龄的textbox中,只允许用户输入数字,而数字之外的字符都过滤掉
  3. 对数据进行Html Encode 处理。< 转化为 &lt;、> 转化为 &gt;、& 转化为 &amp;、' 转化为 &#039;、" 转化为 &quot;、空格 转化为 &nbsp;
  4. 过滤或移除特殊的Html标签。例如:<script>、<iframe>、&lt; for <、&gt; for >、&quot for
  5. 过滤JavaScript 事件的标签。例如 “οnclick=”、”onfocus” 等等
  6. 很多浏览器都加入了安全机制来过滤XSS

注意:攻击代码不一定在<script></script>中

二、CSRF跨站请求伪造

CSRF(XSRF)尽管听起来很想XSS跨站脚本攻击,但是它于XSS完全不同。XSS是利用站点内的信任用户,而CSRF则是通过伪装来自受信任用户的请求来利用受信任的站点。与XSS相比,CSRF攻击不大流行和难以防范,所以比XSS更具危险性。

如何防止CSRF跨站请求伪造:

  1. 对于web站点,将持久化的授权方法(例如cookie或者HTTP授权)切换为瞬时的授权方法(在每个form中提供隐藏field)。
  2. “双提交”cookie。此方法只工作于Ajax请求,但它能够作为无需改变大量form的全局修正方法。如果某个授权的cookie在form post之前正被JavaScript代码读取,那么限制跨域规则将被应用。什么叫限制跨域规则呢?限制跨域规则就是:如果服务器需要在Post请求体或者URL中包含授权cookie的请求,那么这个请求必须来自于受信任的域,因为其它域是不能从信任域读取cookie的。上面那个例子的受信任域就是银行网站的某个域,而Mallory发给Bob的链接不是受信任的域。
  3. 使用Post代替Get。Post方式不会在web服务器和代理服务器日志中留下数据尾巴,然而Get方式却会留下数据尾巴。
  4. 以上三点都是正对web站点的防御手段,第4点是从用户的角度的防御手段。通过在浏览其它站点前登出站点或者在浏览器会话结束后清理浏览器的cookie来防止CSRF攻击。

三、SQL注入

所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

如何防止SQL注入:

  1. 永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双”-“进行转换等。
  2. 永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取
  3. 永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接
  4. 不要把机密信息直接存放,加密或者hash掉密码和敏感的信息
  5. 应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装

https://blog.csdn.net/haoaiqian/article/details/72803976

网络(14)-Web站点如何防范XSS、CSRF、SQL注入攻击?相关推荐

  1. Web攻防之XSS,CSRF,SQL注入

    摘要:对Web服务器的攻击也可以说是形形色色.种类繁多,常见的有挂马.SQL注入.缓冲区溢出.嗅探.利用IIS等针对Webserver漏洞进行攻击.本文结合WEB TOP10漏洞中常见的SQL注入,跨 ...

  2. PHP 预防CSRF、XSS、SQL注入攻击

    1.服务端进行CSRF防御 服务端的CSRF方式方法很多样,但总的思想都是一致的,就是在客户端页面增加伪随机数. (1).Cookie Hashing(所有表单都包含同一个伪随机值): 这可能是最简单 ...

  3. Spring MVC防御CSRF、XSS和SQL注入攻击

    本文说一下SpringMVC如何防御CSRF(Cross-site request forgery跨站请求伪造)和XSS(Cross site script跨站脚本攻击). 说说CSRF 对CSRF来 ...

  4. PHP防SQL注入代码,PHP 预防CSRF、XSS、SQL注入攻击

    1.服务端进行CSRF防御 服务端的CSRF方式方法很多样,但总的思想都是一致的,就是在客户端页面增加伪随机数. (1).Cookie Hashing(所有表单都包含同一个伪随机值): 这可能是最简单 ...

  5. 45-互联网安全架构-Web常用攻击手段之XSS脚本SQL注入攻击

    文章目录 1. 什么是XSS攻击&XSS攻击应用场景 2. XSS脚本攻击原理分析 3. 使用过滤器防御XSS攻击 4. 使用#传递参数防御SQL注入攻击 1. 什么是XSS攻击&XS ...

  6. SQL注入攻击的种类和防范手段

    观察近来的一些安全事件及其后果,安全专家们已经得到一个结论,这些威胁主要是通过SQL注入造成的.虽然前面有许多文章讨论了SQL注入,但今天所讨论的内容也许可帮助你检查自己的服务器,并采取相应防范措施. ...

  7. SQL注入攻击及其防范检测技术研究

    2008-12-18  来自:51CTO  作者:陈小兵 本文简要介绍了SQL注入攻击的原理,SQL注入攻击实现过程,并在此基础上给出了一种SQL注入攻击的自动防范模型. 1  SQL注入攻击概述 1 ...

  8. (超详细)XSS和SQL注入-网络渗透测试实验三

    文章目录 前言 实验目的 系统环境 网络环境 实验工具 XSS部分:利用Beef劫持被攻击者客户端浏览器. 实验环境搭建. 环境搭建参考网站 搭建IIS时踩的坑: 1.利用AWVS扫描留言簿网站,发现 ...

  9. 浅析:XSS攻击、SQL注入攻击和CSRF攻击

    1.XSS(Cross Site Script)攻击 跨站脚本攻击,是在用户浏览网页时向用户浏览器中执行恶意脚本的攻击方式. 跨站脚本攻击分有两种形式:反射型攻击(诱使用户点击一个嵌入恶意脚本的链接以 ...

最新文章

  1. 天使投资家李镇樟:如何培养世界级企业家
  2. jdk11换jdk8版本_在JDK 9(以及8)以及更高版本中,所有内容都可以作为一个流
  3. param注解报错_mybatis不加@Parm注解报错的解决方案
  4. opencv java水平投影_使用OpenCv中Mat进行水平投影与垂直投影并实现字符切分
  5. Hello Quartz (第三部分)
  6. 小练习-----银行提款机系统
  7. .Net程序测试阿里云OSS开放存储服务
  8. 组态软件mcgs入库mysql_MCGS组态软件实现数据报表
  9. 老板让我通知领导们开会,有几个领导故意开会迟到,老板反而说我不会办事,怎么办?...
  10. UI 即 User Interface( 用户界面 ) 的简称
  11. 前端开发笔记:记一次网站创建的过程
  12. 接口测试用例设计:常见问题和风险
  13. 为什么换了固态硬盘电脑会快?详解硬盘与内存的关系
  14. mysqlbinlog如何恢复误删的数据
  15. 好东西为什么卖不动,店铺选址开店必读!
  16. 一名测试开发工程师的内心自白,被裁员之前,没得到任何风声,措手不及......
  17. VC++6.0 Error spawning cl.exe错误
  18. LeetCode:537. 复数乘法————中等
  19. 详解管家婆软件设置不同用户权限
  20. android--获取手机的IMSI码,并判断是中国移动\中国联通\中国电信

热门文章

  1. BZOJ 1199: [HNOI2005]汤姆的游戏 计算几何暴力
  2. android.net.wifi的简单使用方法
  3. 测试网内主机存活状态
  4. MyEclipse下连接Mysql
  5. 通过mysql实现leader election
  6. RabbitMq(二) Connection、Channels、Exchanges、Queues 等基本概念介绍
  7. 面试必问: Spring IOC
  8. php函数里面传指针
  9. 解决自定义actionbar 两边空隙
  10. Java解决循环注入问题