web安全(暗号:散列表)
2020-09-18 23:37:00 0 举报
AI智能生成
web安全
作者其他创作
大纲/内容
XSS
XSS (Cross-Site Scripting),跨站脚本攻击,因为缩写和 CSS重叠,所以只能叫 XSS。跨站脚本攻
击是指通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的非本站点HTML标签或
JavaScript进行的一种攻击。
击是指通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的非本站点HTML标签或
JavaScript进行的一种攻击。
影响
利用虚假输入表单骗取用户个人信息。
利用脚本窃取用户的Cookie值,被害者在不知情的情况下,帮助攻击者发送恶意请求。
显示伪造的文章或图片。
防御手段
CSP
内容安全策略 (CSP, Content Security Policy) 是一个附加的安全层,用于帮助检测和缓解某
些类型的攻击,包括跨站脚本 (XSS) 和数据注入等攻击。 这些攻击可用于实现从数据窃取到
网站破坏或作为恶意软件分发版本等用途
些类型的攻击,包括跨站脚本 (XSS) 和数据注入等攻击。 这些攻击可用于实现从数据窃取到
网站破坏或作为恶意软件分发版本等用途
HEAD
启用XSS过滤。 如果检测到跨站脚本攻击,浏览器将清除页面并使用CSP report-uri 指令的功能
发送违规报告。
发送违规报告。
HttpOnly Cookie
这是预防XSS攻击窃取用户cookie最有效的防御手段。Web应 用程序在设置cookie时,将其
属性设为HttpOnly,就可以避免该网页的cookie被客户端恶意JavaScript窃取,保护用户
cookie信息。
属性设为HttpOnly,就可以避免该网页的cookie被客户端恶意JavaScript窃取,保护用户
cookie信息。
黑名单
用户的输入永远不可信任的,最普遍的做法就是转义输入输出的内容,对于引号、尖括号、斜杠
进行转义
进行转义
转义字符
CSRF
CSRF(Cross Site Request Forgery),即跨站请求伪造,是一种常见的Web攻击,它利用用户已登
录的身份,在用户毫不知情的情况下,以用户的名义完成非法操作。
录的身份,在用户毫不知情的情况下,以用户的名义完成非法操作。
危害
利用用户登录态
用户不知情
完成业务请求
盗取用户资金(转账,消费)
冒充用户发帖背锅
损害网站声誉
防御
禁止第三方网站带Cookie - 有兼容性问题
Referer Check - Https不发送referer
验证码
点击劫持
点击劫持是一种视觉欺骗的攻击手段。攻击者将需要攻击的网站通过 iframe 嵌套的方式嵌入自己
的网页中,并将 iframe 设置为透明,在页面中透出一个按钮诱导用户点击。
的网页中,并将 iframe 设置为透明,在页面中透出一个按钮诱导用户点击。
防御
X-FRAME-OPTIONS
X-FRAME-OPTIONS 是一个 HTTP 响应头,在现代浏览器有一个很好的支持。这个 HTTP 响应头 就
是为了防御用 iframe 嵌套的点击劫持攻击。
是为了防御用 iframe 嵌套的点击劫持攻击。
响应头分别是
DENY,表示页面不允许通过 iframe 的方式展示
SAMEORIGIN,表示页面可以在相同域名下通过 iframe 的方式展示
ALLOW-FROM,表示页面可以在指定来源的 iframe 中展示
ctx.set('X-FRAME-OPTIONS', 'DENY')
js方式
当通过 iframe 的方式加载页面时,攻击者的网页直接不显示所有内容了
SQL注入
OS命令注 入攻击指通过Web应用,执行非法的数据库命令达到攻击的目的
防御
所有的查询语句建议使用数据库提供的参数化查询接口**,参数化的语句使用参数而不是将用户
输入变量嵌入到 SQL 语句中,即不要直接拼接 SQL 语句。例如 Node.js 中的 mysqljs 库的 query
方法中的 ? 占位参数
输入变量嵌入到 SQL 语句中,即不要直接拼接 SQL 语句。例如 Node.js 中的 mysqljs 库的 query
方法中的 ? 占位参数
严格限制Web应用的数据库的操作权限**,给此用户提供仅仅能够满足其工作的最低权限,从而
最大限度的减少注入攻击对数据库的危害
最大限度的减少注入攻击对数据库的危害
后端代码检查输入的数据是否符合预期**,严格限制变量的类型,例如使用正则表达式进行一些
匹配处理
匹配处理
对进入数据库的特殊字符(',",\,<,>,&,*,; 等)进行转义处理,或编码转换**。基本上
所有的后端语言都有对字符串进行转义处理的方法,比如 lodash 的 lodash._escapehtmlchar
库。
所有的后端语言都有对字符串进行转义处理的方法,比如 lodash 的 lodash._escapehtmlchar
库。
OS命令注入
OS命令注 入攻击指通过Web应用,执行非法的操作系统命令达到攻击的目的。只要在能调用Shell函数的地方就有存在 被攻击的风险。倘若调用Shell时存在疏漏,就可以执行插入的非法命令。
请求劫持
DNS劫持
DNS服务器(DNS解析各个步骤)被篡改,修改了域名解析的结果,使得访问到的不是预期的
ip
ip
HTTP劫持
运营商劫持,此时大概只能升级HTTPS了
DDOS(distributed denial of service)
DDOS 不是一种攻击,而是一大类攻击的总称。它有几十种类型,新的攻击方法还在不断发明出来。网
站运行的各个环节,都可以是攻击目标。只要把一个环节攻破,使得整个流程跑不起来,就达到了瘫痪
服务的目的。
站运行的各个环节,都可以是攻击目标。只要把一个环节攻破,使得整个流程跑不起来,就达到了瘫痪
服务的目的。
常见的攻击方式
CC
它就是简单粗暴地送来大量正常的请求,超出服务器的最大承
受量,导致宕机。我遭遇的就是 cc 攻击,最多的时候全世界大概20多个 IP 地址轮流发出请求,每个地
址的请求量在每秒200次~300次。我看访问日志的时候,就觉得那些请求像洪水一样涌来,一眨眼就是
一大堆,几分钟的时间,日志文件的体积就大了100MB。说实话,这只能算小攻击,但是我的个人网站
没有任何防护,服务器还是跟其他人共享的,这种流量一来立刻就下线了。
受量,导致宕机。我遭遇的就是 cc 攻击,最多的时候全世界大概20多个 IP 地址轮流发出请求,每个地
址的请求量在每秒200次~300次。我看访问日志的时候,就觉得那些请求像洪水一样涌来,一眨眼就是
一大堆,几分钟的时间,日志文件的体积就大了100MB。说实话,这只能算小攻击,但是我的个人网站
没有任何防护,服务器还是跟其他人共享的,这种流量一来立刻就下线了。
SYN Flood
此攻击通过向目标发送具有欺骗性源IP地址的大量TCP“初始连接请求”SYN数据包来利用TCP握
手。目标机器响应每个连接请求,然后等待握手中的最后一步,这一步从未发生过,耗尽了进程
中的目标资源。
手。目标机器响应每个连接请求,然后等待握手中的最后一步,这一步从未发生过,耗尽了进程
中的目标资源。
HTTP Flood
此攻击类似于同时在多个不同计算机上反复按Web浏览器中的刷新 - 大量HTTP请求泛滥服务器,
导致拒绝服务。
导致拒绝服务。
防御手段
子主题
0 条评论
下一页