cohciz 2019-11-04
前端最基础的就是 HTML+CSS+Javascript
。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTML/CSS/JS
),本着提升技术水平,打牢基础知识的中心思想,我们开课啦(每周四)。
拖更小伙又来了,今天我们来聊聊 web网络攻击。
劫持
风控
XSS 应该是前端遇到次数最多的问题。通过一些手段,注入一段文字,实现攻击。
<input>
标签 输入,<div>
标签 输出<input value="xss">
本意是输入一段文字,结果显示成了输入框<input>
标签 输入,<input>
标签 输出"><script>alert()</scrpit>
本意是编辑文本,结果因为拼接导致字符串被异常隔开。https://lilnong.top " onclick="alert(1)"
判断url合法,防止拼接异常输出,使用插值或转义
innerText
setAttribute()
<
变成<
、"
变成"
等url处理,插值或过滤
XSS 是通过把代码注入,在其他客户端机器上执行。CSRF 是通过诱导用户,在其他站上,触发请求。
sendGift(liveid, anchorid, giftid)
,服务端验证 cookie。sendGift(liveid, anchorid, giftid)
,只不过他传的liveid、anchorid 都是他自己的。但是因为 cookie
的机制,会默认带上,导致服务端认为这是你主动触发的一次操作。Referrer
校验token
令牌。http 移动端比较多。
中间人也可以理解为伪装的运营商,只不过运营商属于公众,不会太过分。实施中间人攻击时,攻击者常考虑的方式是ARP欺骗或DNS欺骗等
当然,他会有真实的ip,只需要按真实ip过滤即可。
同样,又出现大量的代理。a请求代理,代理请求服务端,这样只能做个池子过滤了。
有时候,我们需要做一个富文本编辑器,其中就有上传的功能,我们一般来说是先把他所有实例代码部署。之后先看看是否符合要求。最后接入修改。
问题就出现在了这里。有时一些代码未删除,或者漏删。这个时候就有问题了,因为是测试代码,未限制类型。比如攻击者上传jsp代码。
风控属于一个持续工程。属于一个可以分层封禁的。
刷优惠券、拉新套现
撞库、暴力破解、短信轰炸、邮件轰炸
说说破解方案。
机刷
说到底,还是要结合业务。找到具体的控制线。
比如说,根据用户等级,确定用户活跃度,30级以下 10个名额,30级以上 20个名额,80级以上 30个名额,心悦8 40个名额。
掘金使用的是这个方案。它可以禁止使用不安全来源的资源。
内容安全策略 (CSP) 是一个额外的安全层,用于检测并削弱某些特定类型的攻击,包括跨站脚本 (XSS) 和数据注入攻击等。无论是数据盗取、网站内容污染还是散发恶意软件,这些攻击都是主要的手段。
CSP通过指定有效域——即浏览器认可的可执行脚本的有效来源——使服务器管理者有能力减少或消除XSS攻击所依赖的载体。一个CSP兼容的浏览器将会仅执行从白名单域获取到的脚本文件,忽略所有的其他脚本 (包括内联脚本和HTML的事件处理属性)。
作为一种终极防护形式,始终不允许执行脚本的站点可以选择全面禁止脚本执行。
有两种设置方式
Content-Security-Policy
HTTP头部<meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src https://*; child-src 'none';">
default-src
默认,给所有配置项设置。child-src
WebWorker 和 <frame>
<iframe>
嵌套浏览上下文。connect-src 脚本接口加载的链接地址
@font-face
。<frame>
和 <iframe>
的有效源。