xssjavascript
它容许恶意web用户将代码植入到提供给其它用户使用的页面中。其实在web前端方面,能够简单的理解为一种javascript代码注入。php
XSS攻击分为三种,分别是:html
这种攻击主要依靠 站点服务端 返回脚本,在客户端 触发执行 从而发起Web攻击。
攻击的例子
一、当你在亚马逊 搜索图书的时候 搜不到书的时候显示提交的名称
二、在搜索框搜索内容,填入“<script>alert('handsome boy')</script>”, 点击搜索
三、若是前端页面没有对 返回的数据进行处理 就会直接弹出alert
也就是直接执行了用户在搜索框里边的脚本
四、 进而能够构造获取用户cookies的地址,经过QQ群或者垃圾邮件,
防护这种攻击的两种方法:
一、前端页面显示服务器端返回来的数据的时候 不只是标签内容须要过滤、转义,就连属性值也均可能须要。让服
务器返回来的非法js脚本 没有办法到达前端的浏览器
二、后端接收请求时,验证请求是否为攻击请求,攻击则屏蔽。前端
这种攻击常见于论坛中 好比说有一我的发表了一篇文章为java
今每天气不错啊!<script>alert('handsome boy')</script>
后端没有对文章进行过滤,直接保存文章内容到数据库。每个读这篇文章的人都会 被弹出alert
防护这种攻击的两种方法:
一、服务器在存储文章的时候对文章的内容要进行过滤。web
一、避免使用eval New Function等执行字符串的方法 除非肯定这个字符串和用户的输入没有关系
二、过滤前端的输入和输出
三、使用cookie的httpOnly属性 加上这个属性的cookie字段 js是没法读取的
四、使用innerHTML document.wirte的数据的时候 若是数据是用户输入的时候 须要对关键字进行过滤与转移数据库
网站的一些提交行为被黑客利用 在你访问黑客网站的时候进行的操做的时候 会被操做到其余网站
你在开发一个购买商品的操做
http://localhost:8082/lab/xsr...json
<?php // 从cookie中获取用户名,看似稳妥 $username = $_COOKIE['username']; $productId = $_GET['pid']; // 这里进行购买操做 //store_into_database($username, $productId); ?> <meta charset="utf-8" /> <?php echo $username . '买入商品:' . $productId; ?>
黑客网站后端
<!DOCYTPE HTML> <html> <head> <meta charset="utf-8" /> </head> <body> <img src="http://localhost:8082/lab/xsrflab/submit.php?pid=1" /> </body> </html>
当每次有人访问黑客网站的时候 就至关于给你执行了一次提交
防护corf
一、检测http referer 是不是同域名
二、避免登陆的session 长时间的存储在客户端中
还有其余的一些攻击
http劫持 饭店的wifi登陆了之后能够拿到你的全部的收发的数据 https加密跨域
开发时要提防用户产生的内容,要对用户输入的信息进行层层检测要注意对用户的输出内容进行过滤(进行转义等)重要的内容记得要加密传输(不管是利用https也好,本身加密也好)get请求与post请求,要严格遵照规范,不要混用,不要将一些危险的提交使用jsonp完成。对于URL上携带的信息,要谨慎使用。心中时刻记着,本身的网站哪里可能有危险。