工做中,用Selenium自动化填表并获取结果时,程序一直安静的读取数据库,网页填表,获取结果,存库,但跑着跑着忽然报错了。javascript
排查后,原来不是Selenium的问题,是数据比较特殊,带了个双引号,以下php
填表后提交时,触发了Chrome XSS自动过滤器 xssAuditor,致使POST请求拦截。(文尾会延伸:Chrome xssAuditor的工做原理)css
Chrome提示以下错误:html
而后查了下解决办法,可否关闭 xssAuditor,非WIN10下我的认为最好的解决办法以下:java
https://www.cnblogs.com/SKTone/p/8331763.htmlweb
但WIN10无法按此办法解决,只能放弃Chrome浏览器 ,声明浏览器改火狐(browser = webdriver.Firefox() ),换用火狐后,它没有自动过滤的状况 【成功解决】chrome
延伸部分:数据库
Chrome xssAuditor的工做原理:浏览器
chrome的xss检测名称为 xssAuditor 整合到webkit当中,chrome这么作的缘由是由于过滤器能够在脚本执行以前就能够拦截,并且任何使用webkit均可以使用这些规则安全
当加载网页时,xssAuditor会在渲染的以前评估用户的输入数据:
1.检查用户输入是否包含恶意内容,若是存在进行拦截
2.xssAuditor检测用户是否会反射到渲染的页面中(html实体/html熟悉/javascript/css/url)
3.评估输入上下文是否合法,非法进行过滤
chrome的检测机理和ie还有很大的区别是,chrome是在此法解析阶段进行的,讲html解析不一样的token(相似php vld opcode),xssAuditor会逐一扫描检测token,
若是token中发现危险的属性和URL进行比较,若是URL中也存在一样的数据,xssAuditor则会认为这是一个反射XSS。
demo:
解析器解析<iframe src="x" onerror="alert(1)"></iframe>
1.依次检查标签iframe是否包含恶意属性,src/onerror
2.若是src不是以javascript:开头,则安全,放行
3.onerror中含有脚本,检查URL是否包含
4.若是出如今URL中,认为存在安全问题,将过滤 <iframe src="x" onerror="void(0)"></iframe>
5.停止iframe标签检查