-
点击穿透
这是因为在移动端浏览器,事件执行的顺序是touchstart > touchend > click 而click事件有300ms的延迟,当touchstart事件把B元素隐藏之后,隔了300ms,浏览器触发了click事件,但是此时B元素不见了,所以该事件被派发到了A元素身上 如果A元素是一个链接,那此时页面就会意外地跳转
-
事件机制
捕获,到达目标,冒泡 现代浏览器:addEventListener / evt.target,无on,有捕获和冒泡,参数3控制在捕获还是冒泡阶段触发事件 旧IE:attachEvent / event.srcElement,带on,只有冒泡阶段
-
XSS
发生在: 1. 数据从一个不可靠的链接进入到一个web应用程序 2. 没有过滤掉恶意代码的动态内容被发送给web用户 前端防范: 1. 字符串类型的数据,需要针对<、>、/、’、”、&五个字符进行实体化转义 function encodeHTML (a) { return String(a) .replace(/&/g, "&") .replace(/</g, "<") .replace(/>/g, ">") .replace(/"/g, """) .replace(/'/g, "'"); }; 2. 在响应头或页面<meta>内设置 Content-Security-Policy 3. 设置响应头的 HttpOnly ,使得 cookie 不能使用 JavaScript 经由 Document.cookie 属性、XMLHttpRequest 和 Request APIs 进行访问 后端防范:过滤所有的‘<’和‘>’字符,确保从后端而来的数据并不带有任何的html标签,xss的危险在于有不可预料的前端脚本,但是值得注意的是,不单只有script标签是可以运行脚本的,任何的html标签都可以加上类似onclick,onload这样的事件也都可以运行脚本,所以需要过滤所有的‘<’和‘>’字符
JS题 实际问题
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 相关知识点 移动端、 适配(兼容)、 ios点击事件300ms延迟、 点击穿透、 定位失效...... 问题&解决...