常见的前端攻击方式html
XSS 攻击、CSRF 攻击、点击劫持、URL 跳转漏洞。前端
什么是 XSS 攻击?面试
XSS 即跨站脚本攻击,是一种代码注入攻击。恶意代码未通过滤,与网站正常代码混在一块儿,浏览器没法分辨哪些脚本是可信的,致使恶意脚本被执行。数据库
XSS 攻击有几种攻击类型?如何防范 XSS 攻击?json
XSS 攻击包括反射型、DOM 型和持久型三种。segmentfault
(1) 反射型 XSS浏览器
(2) DOM 型 XSS安全
.innerHTML
、.outerHTML
、appendChild
、document.write()
等 API 时把不可信的数据做为 HTML 插到了页面上。.innerText
、.textContent
、setAttribute()
等API,并对输入内容进行转义。(3) 存储型 XSS服务器
其余防范 XSS 攻击的手段:cookie
(1) CSP:白名单制度,开发者经过配置告诉浏览器哪些外部资源能够加载和执行。能够经过服务端配置 HTTP的Content-Security-Policy
头部指定,也能够在前端设置meta
标签。
(2) 输入内容限制,不能包含特殊字符。
(3) 为 Cookie 设置HttpOnly
标记,使攻击者不能经过 JavaScript 访问 Cookie。
Set-Cookie: ...; HttpOnly
复制代码
(4) 验证码:防止脚本冒充用户提交危险操做。
什么是 CSRF ?如何防范 CSRF ?
CSRF 及跨站请求伪造,攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕事后台的用户验证,达到冒充用户对被攻击网站执行某项操做的目的。
防范方式:
Set-Cookie
设置Samesite
属性,限制第三方 Cookie,不是全部浏览器都支持这种方式。Samesite
能够设置三个值:
Strict
,彻底禁止第三方 Cookie,跨站点时,任何状况下都不会发送 Cookie。Lax
,跨站点时,除导航到目标地址的 Get 请求(连接、预加载、GET 表单)外,其余状况也不发送第三方 Cookie。None
,关闭SameSite
属性,前提是必须同时设置Secure
属性。除了 XSS 和 CSRF 攻击以外,还有哪些攻击方式?
X-Frame-Options
头部,能够设置三个值:
DENY
:表示该页面不容许在 frame 中展现,即便在相同域名的页面中嵌套也不容许sameorigin
:表示该页面能够在相同域名页面的 frame 中展现allow-from uri
:表示该页面能够在指定来源的 frame 中展现安全扫描工具
Arachni、Mozilla HTTP Observatory、w3af
参考: