| 关键词: 用户 攻击 攻击者 Cookie 网站 方法 浏览器 代码 引号 内容 |
![]() 一、跨站脚本攻击跨站脚本攻击( XSS),可以将代码注入到用户浏览的网页上,这种代码包括 HTML和js。 攻击方法: 例如有一个社交网站,攻击者可以在上面发布以下内容: 该内容可能会被渲染成: 其它用户浏览了含有这个内容的页面将会跳转到 http://aaa.com 并携带了当前作用域的 Cookie。如果这个社交网站通过Cookie 管理用户登录状态,那么攻击者就可以通过这个 Cookie登录被攻击者的账号了。 危害 窃取用户的 Cookie 伪造虚假的输入表单骗取个人信息 显示伪造的文章或者图片 阻止方法: 1. 设置 Cookie 为 HttpOnly 设置了 HttpOnly 的 Cookie 可以防止 JavaScript 脚本调用,就无法通过 document.cookie 获取用户 Cookie 信息。 2. 过滤特殊字符 例如将 `<` 转义为 `<`,将 `>` 转义为 `>`,从而避免 HTML 和 JS 代码的运行。 二、跨站请求伪造概念 跨站请求伪造(CSRF),是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并执行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去执行。 XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户浏览器的信任。 攻击方法: 假如一家银行执行转账操作的 URL 地址如下: http://www.bank.com/zz?account=AccoutName&amount=10000&for=PayeeName。 那么,一个恶意攻击者可以在另一个网站上放置如下代码:
如果有账户名为 JICK 的用户访问了恶意站点,而她之前刚访问过银行不久,登录信息尚未过期,那么她就会损失 10000 美元。 这种恶意的网址可以有很多种形式,藏身于网页中的许多地方。此外,攻击者也不需要控制放置恶意网址的网站。例如他可以将这种地址藏在论坛,博客等任何用户生成内容的网站中。这意味着如果服务器端没有合适的防御措施的话,用户即使访问熟悉的可信网站也有受攻击的危险。 CSRF是欺骗用户浏览器,让其以用户的名义执行操作。 阻止方法: 1. 检查 Referer 首部字段 Referer 首部字段位于 HTTP 报文中,用于标识请求来源的地址。检查这个首部字段并要求请求来源的地址在同一个域名下,可以极大的防止 CSRF 攻击。 2. 添加校验 Token 在访问敏感数据请求时,要求用户浏览器提供不保存在 Cookie中,并且攻击者无法伪造的数据作为校验。例如服务器生成随机数并附加在表单中,并要求客户端传回这个随机数。 3. 输入验证码 因为 CSRF 攻击是在用户无意识的情况下发生的,所以要求用户输入验证码可以让用户知道自己正在做的操作。 三、SQL 注入攻击概念 服务器上的数据库运行非法的 SQL 语句,主要通过拼接来完成。 攻击方法: 例如一个网站登录验证的 SQL 查询代码为: strSQL = "SELECT * FROM user WHERE (name = '" + userName + "') and (pw = '"+ passWord +"');" 如果填入以下内容: userName = "1' OR '1'='1"; passWord = "1' OR '1'='1"; 阻止方法: 1. 使用参数化查询 Java 中的 PreparedStatement 是预先编译的 SQL 语句,可以传入适当参数并且多次执行。由于没有拼接的过程,因此可以防止 SQL 注入的发生。 2. 单引号转换 将传入的参数中的单引号转换为连续两个单引号。 四、拒绝服务攻击拒绝服务攻击(DoS),洪水攻击,其目的在于使目标电脑的网络或系统资源耗尽,使服务暂时中断或停止,导致其正常用户无法访问。 分布式拒绝服务攻击(distributed denial-of-service attack,DDoS),指攻击者使用两个或以上被攻陷的电脑作为“僵尸”向特定的目标发动“拒绝服务”式攻击。 |
| 本文出处: https://www.toutiao.com/a6719356576567656972/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|