wordpress手机展示,seo的基本步骤四个,网站建设方案与报价,模板多少钱一平方一、XSS跨站脚本攻击
1.Cross-Site Scripting#xff08;跨站脚本攻击#xff09;简称 XSS#xff08;因为缩写和 CSS重叠#xff0c;所以只能叫 XSS#xff09;#xff0c;是一种代码注入攻击。攻击者通过在目标网站上注入恶意脚本#xff0c;使之在用户的浏览器上运行…一、XSS跨站脚本攻击
1.Cross-Site Scripting跨站脚本攻击简称 XSS因为缩写和 CSS重叠所以只能叫 XSS是一种代码注入攻击。攻击者通过在目标网站上注入恶意脚本使之在用户的浏览器上运行。利用这些恶意脚本攻击者可获取用户的敏感信息如 Cookie、SessionID 等进而危害数据安全。【存储型XSS、反射型XSS、DOM型XSS】
原理恶意攻击者往 Web 页面里插入恶意可执行网页脚本代码当用户浏览该页之时嵌入其中 Web 里面的脚本代码会被执行从而可以达到攻击者盗取用户信息或其他侵犯用户安全隐私的目的。
防御措施 Web 页面渲染的所有内容或者渲染的数据都必须来自于服务端 csp(Content-Security-Policy) 本质上就是建立白名单开发者明确告诉浏览器哪些外部资源可以加载和执行。我们只需要配置规则如何拦截是由浏览器自己实现的。
二、CSRF跨站请求伪造
2.CSRFCross-site request forgery跨站请求伪造攻击者诱导受害者进入第三方网站在第三方网站中向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证绕过后台的用户验证达到冒充用户对被攻击的网站执行某项操作的目的。【GET类型、POST类型、链接类型】
原理 用户已经登录了站点 A并在本地记录了 cookie 在用户没有登出站点 A 的情况下也就是 cookie 生效的情况下访问了恶意攻击者提供的引诱危险站点 B (B 站点要求访问站点A)。 站点 A 没有做任何 CSRF 防御
防御措施 SameSite为了从源头上解决这个问题Google起草了一份草案来改进HTTP协议为Set-Cookie响应头新增Samesite属性它用来标明这个 Cookie是个“同站 Cookie”同站Cookie只能作为第一方Cookie不能作为第三方CookieSamesite 有两个属性值分别是 Strict严格模式 和 Lax宽松模式。 HTTP Referer是header的一部分当浏览器向web服务器发送请求时一般会带上Referer信息告诉服务器是从哪个页面链接过来的服务器籍此可以获得一些信息用于处理。可以通过检查请求的来源来防御CSRF攻击。 使用Token(主流)CSRF攻击之所以能够成功是因为服务器误把攻击者发送的请求当成了用户自己的请求。那么我们可以要求所有的用户请求都携带一个CSRF攻击者无法获取到的Token。服务器通过校验请求是否携带正确的Token来把正常的请求和攻击的请求区分开。 验证码用程序和用户进行交互过程中特别是账户交易这种核心步骤强制用户输入验证码才能完成最终请求。在通常情况下验证码够很好地遏制CSRF攻击。但增加验证码降低了用户的体验网站不能给所有的操作都加上验证码。所以只能将验证码作为一种辅助手段在关键业务点设置验证码。
三、点击劫持
3.点击劫持是一种视觉欺骗的攻击手段。攻击者将需要攻击的网站通过 iframe 嵌套的方式嵌入自己的网页中并将 iframe 设置为透明在页面中透出一个按钮诱导用户点击。
防御措施X-FRAME-OPTIONS是一个 HTTP 响应头在现代浏览器有一个很好的支持。这个 HTTP 响应头 就是为了防御用 iframe 嵌套的点击劫持攻击。
四、URL跳转漏洞
4.URL跳转漏洞借助未验证的URL跳转将应用程序引导到不安全的第三方区域从而导致的安全问题。
原理黑客利用URL跳转漏洞来诱导安全意识低的用户点击导致用户信息泄露或者资金的流失。其原理是黑客构建恶意链接(链接需要进行伪装,尽可能迷惑),发在QQ群或者是浏览量多的贴吧/论坛中。安全意识低的用户点击后,经过服务器或者浏览器解析后跳到恶意的网站中。恶意链接需要进行伪装,经常的做法是熟悉的链接后面加上一个恶意的网址这样才迷惑用户。
防御措施 referer的限制如果确定传递URL参数进入的来源我们可以通过该方式实现安全限制保证该URL的有效性避免恶意用户自己生成跳转链接 加入有效验证Token:保证所有生成的链接都是来自于我们可信域的通过在生成的链接里加入用户不可控的Token对生成的链接进行校验可以避免用户生成自己的恶意链接从而被利用但是如果功能本身要求比较开放可能导致有一定的限制。
五、SQL注入
5.SQL注入SQL注入是一种常见的Web安全漏洞攻击者利用这个漏洞可以访问或修改数据或者利用潜在的数据库漏洞进行攻击。
防御措施 严格限制Web应用的数据库的操作权限给此用户提供仅仅能够满足其工作的最低权限从而最大限度的减少注入攻击对数据库的危害 后端代码检查输入的数据是否符合预期严格限制变量的类型例如使用正则表达式进行一些匹配处理。 对进入数据库的特殊字符\*; 等进行转义处理或编码转换。基本上所有的后端语言都有对字符串进行转义处理的方法比如 lodash 的 lodash._escapehtmlchar 库。 所有的查询语句建议使用数据库提供的参数化查询接口参数化的语句使用参数而不是将用户输入变量嵌入到 SQL 语句中即不要直接拼接 SQL 语句。例如 Node.js 中的 mysqljs 库的 query 方法中的 ? 占位参数。
六、OS命令注入攻击
6.OS命令注入攻击OS命令注入攻击指通过Web应用执行非法的操作系统命令达到攻击的目的。只要在能调用Shell函数的地方就有存在被攻击的风险。倘若调用Shell时存在疏漏就可以执行插入的非法命令。命令注入攻击可以向Shell发送命令让Windows或Linux操作系统的命令行启动程序。也就是说通过命令注入攻击可执行操作系统上安装着的各种程序。
防御 后端对前端提交内容进行规则限制比如正则表达式。 在调用系统命令前对所有传入参数进行命令行参数转义过滤。 不要直接拼接命令语句借助一些工具做拼接、转义预处理例如 Node.js 的 shell-escape npm包。