php安全:全面解析跨站脚本攻击

作为网站的业务管理者,在欣赏自己为客户提供的丰富业务和趣味性体验时,你是否曾经想过网站会成为攻击者攻击第三方的媒介,从而导致公信度大为受损?作为一个网站的访客,你是否曾经想过在访问这个自己再熟悉不过的网站时,你的私密信息已经被他人窃取?这些都与跨站脚本攻击有关。下面让我们详细了解这类攻击。更多消息请关注应届毕业生网!

一、什么是跨站脚本?

跨站脚本(Cross-site scripting,简称XSS),是一种迫使Web站点回显可执行代码的攻击技术,而这些可执行代码由攻击者提供、最终为用户浏览器加载。不同于大多数攻击(一般只涉及攻击者和受害者),XSS涉及到三方,即攻击者、客户端与网站。XSS的攻击目标是为了盗取客户端的cookie或者其他网站用于识别客户端身份的敏感信息。获取到合法用户的信息后,攻击者甚至可以假冒最终用户与网站进行交互。

XSS漏洞成因是由于动态网页的Web应用对用户提交请求参数未做充分的检查过滤,允许用户在提交的数据中掺入HTML代码(最主要的是“>”、“

二、XSS缩写来源?

依照英文缩写习惯,简称跨站脚本为CSS/" id="k530842266" target="_blank">CSS。这样会引起它和另一个名词“层叠样式表”(Cascading Style Sheets,CSS)的混淆。此CSS非彼CSS。为了以示区别,一些安全人士就习惯将跨站脚本简称为XSS。

三、XSS存在哪些威胁?

攻击者可以利用XSS漏洞、借助存在漏洞的Web网站攻击其他浏览相关网页的用户,窃取用户浏览会话中诸如用户名和口令(可能包含在cookie里)的敏感信息、通过插入恶意代码对用户执行挂马攻击。XSS漏洞还可能被攻击者用于网页篡改,只是多数情况为了经济利益最大化,攻击者不会直接进行篡改。

四、XSS漏洞的普及率有多高?

国际Web应用安全组织WASC(Web Application Security Consortium)最新数据[4]表明,采样分析了10297个网站,其中有31.47%站点存在XSS漏洞,且XSS在发现的漏洞中占到总数的41.41%,高居榜首。

图1. 最为普及的Web应用安全漏洞[4]

五、能否列举XSS实例?

2005年,一位叫Samy的MySpace用户自创了一种XSS蠕虫,24小时内,其网络空间朋友数目成功从73上升到1百万。

2006年,PayPal遭到XSS攻击,攻击者将PayPal站点的访问者重定向到一个新的页面,上面警告用户他们的帐号已经不再安全,需要重新设置,并提示输入PayPal的登录信息、用户社保信息及信用卡信息。

2008年5月,eBay承认其PayPal页面存在XSS漏洞,该漏洞会被攻击者用于盗取用户证书或cookie。

六、攻击者如何通过XSS攻击偷取cookie?

在此,仅做举例说明,帮助读者理解XSS攻击的思路。本文中的例子来自。

首先,让我们假设:存在一个网站www.vulnerablee****.com。该网站上有一个脚本welcome.cgi,参数设定为name。此脚本会读取HTTP请求的部分,然后未做任何安全性验证,就将请求内容部分或全部回显到响应页面。

通常,如果用户端发送以下请求:

GET /welcome.cgi?name=Sammi HTTP/1.0Host: www.vulnerablee****.com

服务器将会有如下响应:

Hi SammiWelcome!...

弹出Alert窗口示例

上述机制将如何为攻击者所利用呢?我们先列举一个直观的方法。通常,攻击者会应用社会工程学(Social Engineering)设法诱骗受害者点击由攻击者精心构造的链接,如发送一封标题为“免费听林肯公园北京现场演唱会”的邮件。

攻击者构造的恶意链接如下:

http://www.vulnerablee**.com/welcome.cgi?name=

受害者一旦点击了恶意链接,会发送如下请求到www.vulnerablee***.site站点:

GET /welcome.cgi?name= HTTP/1.0Host: www.vulnerablee****.com...

站点将返回如下响应:

HiWelcome!...

因为服务器端返回的HTML页面包含一段JavaScript代码,受害者浏览器会解释执行。这段代码被执行后,将被允许访问浏览器中属于www.vulnerablee***.com站点的cookie。此时,用户侧浏览器上会弹出一个alert窗口。

网站收集cookie示例

真实的攻击步骤中,这些cookie会被发送给攻 击者。攻击者为此会搭建一个网站(我们称为www.attackere**.com),还会应用一个脚本负责接收盗取的cookie。攻击者会写一段恶意 代码,用于实现访问攻击者站点、并能调用接收cookie的脚本。最终,攻击者可以从www.attackere**om站点获取到cookie。

构造的恶意链接如下:

http://www.vulnerablee**om/welcome.cgi?name=

服务器响应内容显示为:

HiWelcome!...

浏览器会加载服务器端返回页面,执行内嵌的JavaScript,并发送一个请求到www.attackere**om站点上的 collect.cgi脚本,浏览器中保存的www.vulnerablee***.com站点的.cookie值也会一起发送过去。攻击者获取到客户在 www.vulnerablee***.com站点的cookie,还可以假冒受害者。

七、加密是否能有效防护XSS攻击?

通常大家会认为如果网站使用了HTTPS,提供更有保障的安全,可以幸免于XSS攻击。其实这是一种误解。HTTPS仅提供传输层的安全,在应用层仍然面临XSS的威胁。

八、XSS漏洞是否可能引起非法执行命令?

如果浏览器设置安全性不够时,XSS漏洞允许插入JavaScript,也就意味着攻击者可能获取受限的客户端执行权限。如果攻击者进而利用浏览器的漏洞,就有可能在客户端非法执行命令。简言之,XSS漏洞有助于进一步利用浏览器漏洞。

九、从网站开发者角度,如何防护XSS攻击?

来自应用安全国际组织OWASP的建议,对XSS最佳的防护应该结合以下两种方法:验证所有输入数据,有效检测攻击;对所有输出数据进行适当的编码,以防止任何已成功注入的脚本在浏览器端运行。具体如下:

输入验证:某个数据被接受为可被显示或存储之前,使用标准输入验证机制,验证所有输入数据的长度、类型、语法以及业务规则。

强壮的输出编码:数据输出前,确保用户提交的数据已被正确进行entity编码,建议对所有字符进行编码而不仅局限于某个子集。

明确指定输出的编码方式(如ISO 8859-1或 UTF 8):不要允许攻击者为你的用户选择编码方式。

注意黑名单验证方式的局限性:仅仅查找或替换一些字符(如""或类似"script"的关键字),很容易被XSS变种攻击绕过验证机制。

警惕规范化错误:验证输入之前,必须进行解码及规范化以符合应用程序当前的内部表示方法。请确定应用程序对同一输入不做两次解码。

十、从网站用户角度,如何防护XSS攻击?

当你打开一封Email或附件、浏览论坛帖子时,可能恶意脚本会自动执行,因此,在做这些操作时一定要特别谨慎。建议在浏览器设置中关闭JavaScript。如果使用IE浏览器,将安全级别设置到“高”。具体可以参照浏览器安全的相关文章。

这里需要再次提醒的是,XSS攻击其实伴随着社会工程学的成功应用,需要增强安全意识,只信任值得信任的站点或内容。

十一、如果修补XSS漏洞对网站来说困难较大,不修补会怎样?

如果不能及时修补XSS漏洞,网站可能成为攻击者攻击第三方的媒介,公信度受损;网站用户成为受害者,敏感信息泄漏。现实中,确实存在某些无法修补漏洞的客观原因,如Web应用开发年代久远或者整改代码需要付出过于高昂的代价。这种情况下, 选择Web安全网关会是一种合理选择。正确应用这类安全工具,会极大缓解XSS攻击,降低安全风险。

十二、下一代XSS会是怎样的?

随着AJAX(Asynchronous JavaScript and XML,异步JavaScript和XML)技术的普遍应用,XSS的攻击危害将被放大。使用AJAX的最大优点,就是可以不用更新整个页面来维护数 据,Web应用可以更迅速地响应用户请求。AJAX会处理来自Web服务器及源自第三方的丰富信息,这对XSS攻击提供了良好的机会。AJAX应用架构会泄漏更多应用的细节,如函数和变量名称、函数参数及返回类型、数据类型及有效范围等。AJAX应用架构还有着较传统架构更多的应用输入,这就增加了可被攻击的点。

php 跨站脚本攻击漏洞,php安全:全面解析跨站脚本攻击相关推荐

  1. 最小攻击超过最大攻击_贪婪洞窟攻击力解析 最大攻击与最小攻击对比分析

    <贪婪洞窟>中武器有"攻击速度"属性,代表武器装备上以后角色的攻击频率.按照攻击频率的高低,武器攻速共分快速.中速和慢速三种.<贪婪洞窟>中的攻速属性是一个 ...

  2. 跨站脚本攻击漏洞(XSS):基础知识和防御策略

    数据来源 部分数据来源:ChatGPT 一.跨站脚本攻击简介 1.什么是跨站脚本攻击? 跨站脚本攻击(Cross-site scripting,XSS)是一种常见的网络安全漏洞,攻击者通过在受害网站注 ...

  3. 跨站脚本攻击漏洞防范与解决办法

    前段时间在修改时天气预报15天查询(http://tqybw.net),想增加图片延迟载入的脚本功能,刚好看到某XX网站上有,为了测试方便,就直接引用某XX站的JS调用,没有下载下来.然后急着就上线了 ...

  4. Web安全之跨站脚本攻击漏洞

    跨站脚本(XSS)漏洞 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为 XSS . ...

  5. 安全漏洞中的倚天剑——XSS跨站脚本攻击

    one.概念 XSS跨站脚本攻击(Cross-Site Scripting)就是网站将用户输入的内容输出到页面上,在这个过程中可能有恶意代码被浏览器执行,XSS属于被动式的攻击,因为其被动且不好利用, ...

  6. XSS(跨站脚本攻击)漏洞解决方案

    XSS(跨站脚本攻击)漏洞解决方案 参考文章: (1)XSS(跨站脚本攻击)漏洞解决方案 (2)https://www.cnblogs.com/boboxing/p/9261996.html 备忘一下 ...

  7. web攻防之跨站脚本攻击漏洞

    摘要:XSS跨站脚本攻击一直都被认为是客户端Web安全中最主流的攻击方式.因为Web环境的复杂性以及XSS跨站脚本攻击的多变性,使得该类型攻击很难彻底解决.那么,XSS跨站脚本攻击具体攻击行为是什么, ...

  8. XSS跨站脚本攻击漏洞

    XSS(跨站脚本攻击)是一种常见的网络安全漏洞,它允许攻击者在网站中植入恶意的脚本代码,当其他用户访问该网站时,这些脚本代码会在用户的浏览器中执行.这可能会导致严重的安全后果,比如窃取用户的敏感信息, ...

  9. XSS(跨站脚本)漏洞详解之XSS跨站脚本攻击漏洞的解决

    XSS(跨站脚本)漏洞详解 XSS的原理和分类 跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆, ...

最新文章

  1. 【Django】创建项目及框架介绍,学习笔记(一)
  2. 真人拳皇项目第九次Scrum总结——史经浩
  3. string的常见用法详解
  4. VS.Net 2005 Beta2连接Team Foundation Server的问题
  5. 百度云世界里的“七种武器”:PCS、BAE、Site App、ScreenX等
  6. 尚硅谷_jQuery_学习笔记
  7. 解决 : Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile
  8. 是程序员就应该知道的东西
  9. System76 是如何打造开源硬件的
  10. python通过多进程实行多任务
  11. 【EJB学习笔记】——EJB开发环境搭建(Eclipse集成JBoss)
  12. 蓝宝石rx470d原版bios_狼神矿卡烤机89°C!强刷蓝宝石RX570超白金显卡BIOS降温75°教程...
  13. 手机微信发语音没有声音
  14. 防火墙(NGFW)与UTM本质上的区别
  15. 基于大数据分析技术在会计方面的研究
  16. ubuntu的防火墙 ufw
  17. Android 客户端与服务端的数据交互问题
  18. 前端下载图片的N种方法
  19. 如何成为一名糟糕的大数据平台工程师
  20. 什么是BIOS?为什么开机先从BIOS开始?以及操作系统启动过程

热门文章

  1. 手机扫一扫,现实物体隔空「复制粘贴」进电脑!北大校友的AI新研究,现在变成AR酷炫应用
  2. 圆心科技冲刺港交所上市:收入主要靠卖药,毛利率仅在10%上下
  3. 当豪车遇上科技:Aion LX旗舰开启预售
  4. linux基础第7节 ----配置与管理DNS服务器
  5. 如何选型电源SPD后备保护器
  6. makefile脚本
  7. 什么是分镜?用UniStory管理分镜,制定拍摄计划和讨论故事板
  8. 新手入门:调环境,快逼到玄学了该怎么办
  9. Cisco 交换机配置Trunk端口报错“Command rejected: An interface whose trunk encapsulation is “Auto“ can not be..
  10. 美酒众耀 夏友云朋 | 瑞格尔侯爵佳酿亮相2022美夏中国区巡展