`
Liner
  • 浏览: 143507 次
  • 性别: Icon_minigender_1
  • 来自: 西南边陲
社区版块
存档分类
最新评论

对 XSS 跨站攻击之所以存在的一些思考

阅读更多

一直对漏洞、骇客、攻击之类的东西没敢深入,甚至肤浅的了解都算不上。但做程序,安全问题却是头等大事。随着学习,自己以后肯定得要去深入、了解了。

关于 XSS 跨站攻击,断断续续看过些介绍,但却一直连基本概念都没搞懂——汗死! 今天,终于看明白了,原来就是对 Html 内容的入侵,让浏览器去执行侵入的代码——不晓得是自己笨,还是网上的技术文章本身的问题——讲解好像是给作者自己看的,基本会省掉前提知识、基本概念,差不多要懂的人才看得懂——既然人家都懂了,干吗还要再看呢?写的东西不是给懂的人看的,而是给不懂的人看的。唉……咱技术人员的文学修养……

废话不说了,看不懂总比没得看要好。书归正传,总结一下自己的看法吧,权且当作学习笔记,也不敢期望不懂的人看得懂,呵呵。

XSS 概念的基本要点:

1、 入侵者通过 Web 程序的“漏洞”(一般是对用户输入的数据没有严格的检查过滤),输入特别构造的包含 Html 标签的文本,使得某 Web 脚本的 Html 输出中包含了不该有的“可执行”代码,如包含在<script>标签中的 javascript、标签中的可执行属性(onLoad、onerror 等各种事件、href="javascript:xxx”、src="提权脚本" 等)。

2、 当具有高级权限的用户请求这个 Web 脚本时,其输出的 Html 中就包含了非法代码,而这非法代码可能执行另一个安全相关的脚本——这个脚本需要该高级用户的权限。这样,就相当于该高级用户不知不觉地做了一件安全相关的事,比如给侵入者注册的帐户提权。

3、 侵入者用那个被提权的帐户,干提高权限之后可以干的任何事……


预防 XSS 攻击的观点:

1、 目前预防 XSS 攻击的一般措施是:对由外部输入的数据(如普通用户的可编辑数据、任何人都可构造的 URL 请求串、非只读的外部配置文件等)进行严格的检查过滤,使得只有符合规格的数据才会通过,被程序内部使用。 有些过滤函数采用排除大量非法关键字的方式来过滤外部数据,但这样预防存在问题,一是计算量大了,二是非法关键字可能会随着技术发展而增加。所以应该采取“合法才进入”的原则,而不是“非法则排除”的原则——非法的情况是不固定的,合法情况则是固定的。

2、 个人认为,XSS 攻击的本质,其实不应该是数据输入的问题。数据输入是千变万化的,不论是输入方式还是输入的数据本身。XSS 攻击之所以存在,是数据输出造成的!如此思考,我们会得到全新的程序设计思路:


    a、 输出数据应该是什么样的?如果把输出数据不简单的等同于数据库里的相关条目,比如一个经过严格验证的“合法”的 URL 条目,那我们又应该如何来构造一条合法  URL 输出呢?明显地,这时就需要在程序设计阶段,考虑某些基本元素如何划分了。一条合法的 URL 可能就不是一条数据,而是由不同部分组成:比如脚本路径、脚本文件名、查询串里的 ID 值、其它某个名称/值对等。——这些都是可知的,也是可控的。这时数据表中就不是只设计一个“存储 URL”的字段,而是更细致的东西。


    b、 因之而来的思考是,输入的数据应该是什么样的?用户输入的数据需要是一条完整的 URL 吗?——不需要,也不应该!因为不可能让用户输入完整的 URL,然后还要程序对 URL 进行分解以提取需要的子项数据。自然而然的做法是让用户直接提供 URL 中各个“子项”数据,而这些子项数据应该都已经是基本的元数据类型了。这样,就不需要对输入数据进行复杂的检查过滤了,只需要最基本也是很通用的验证即可。

    ——于是,XSS 被杜绝了!不存在 XSS 的攻击了。以静制动,以不变应万变。

不当之处,欢迎拍砖,我不是一个资深的程序人,简单思路仅供参考。

 

 

后记:

  对于必须要 Html 代码输入的场合,比如在线编辑器提供的内容,就很难处理了,大概也只能用过滤的方式——还没想到更好的办法(除了限制标签的使用外)。呵呵

分享到:
评论

相关推荐

    信息安全_数据安全_From_Abstract_to_Presentation:Di.pdf

    随着互联网的普及,用户隐私保护成了全球性的问题,而web安全则关系到网站和网页应用的安全,需要防止如跨站脚本(XSS)、SQL注入、点击劫持等攻击。在这些方面,不仅需要技术手段的支撑,还需要良好的风险管理措施...

    【AI绘画领域】Craiyon:简化操作与高效生成的大众创意绘画工具综述

    内容概要:本文介绍了AI绘画工具Craiyon,它由Google和Hugging Face研究人员开发,是DALL-E mini的后续版本。Craiyon以其简便的操作、强大的创意激发能力和快速生成图像的特点受到欢迎。用户只需简单输入文字描述,Craiyon即可生成图像,极大地降低了绘画门槛。文章还探讨了Craiyon面临的挑战,包括版权争议、图像质量提升空间和艺术本质的讨论。最后,展望了Craiyon在教育、商业等领域的应用前景,强调其在未来创意和科技融合中的重要性。 适合人群:适合所有对AI绘画感兴趣的用户,尤其是零基础的艺术爱好者、设计师以及需要快速生成创意图像的专业人士。 使用场景及目标:①帮助设计师突破创意瓶颈,快速生成设计草图;②为普通用户提供实现梦想可视化的途径;③在教育领域辅助创意启发课程,提升学生创造力和跨学科学习能力;④在商业领域加快广告设计、游戏开发等项目的创意构思和制作进程。 其他说明:尽管Craiyon存在版权争议、图像质量有待提高等问题,但其简便易用的特点使其成为初学者和创意爱好者的理想选择。未来,随着技术的进步,Craiyon有望克服现有挑战,为用户提供更高质量的服务。

    实训商业源码-智慧农场 1.9.2+农业众筹投资+活动报名+智慧农场拼团 +农场乐园-论文模板.zip

    实训商业源码-智慧农场 1.9.2+农业众筹投资+活动报名+智慧农场拼团 +农场乐园-论文模板.zip

    实训商业源码-图片表情-论文模板.zip

    实训商业源码-图片表情-论文模板.zip

    实训商业源码-微信·小程序模板社交圈-论文模板.zip

    实训商业源码-微信·小程序模板社交圈-论文模板.zip

    实训商业源码-智慧农场小程序1.8.9-论文模板.zip

    实训商业源码-智慧农场小程序1.8.9-论文模板.zip

    MFC自制人脸识别软件(含虹软人脸识别密钥)

    使用MFC自制的人脸识别小软件,能够实现注册登录基础功能。可以在此基础上进一步开发,实现锁屏登录等功能

    实训商业源码-文件快递-论文模板.zip

    实训商业源码-文件快递-论文模板.zip

    基于vue+javaScript实现的订货系统供货商后台系统+源码(毕业设计&课程设计&项目开发)

    基于vue+javaScript实现的订货系统供货商后台系统+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用 基于vue+javaScript实现的订货系统供货商后台系统+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于vue+javaScript实现的订货系统供货商后台系统+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用 基于vue+javaScript实现的订货系统供货商后台系统+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用 基于vue+javaScript实现的订货系统供货商后台系统+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用 基于vue+javaScript实现的订货系统供货商后台系统+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用

    面试题总结一,包括常见面试题

    面试题总结一,包括常见面试题

    PT7C4512-PLL时钟倍频器-中文数据手册.pdf

    PT7C4512-PLL时钟倍频器-中文数据手册

    基于Matlab Simulink的风轮机发电系统多模块建模与仿真研究 建模与仿真

    内容概要:本文详细介绍了使用Matlab 2022a中的Simulink工具对风轮机发电系统进行全面建模与仿真的方法。主要内容涵盖风速模型(包括基本风、阵风、阶跃风和随机风)、风力机模型(涉及叶片、轴承、发电机等组件)以及飞轮储能模块的构建。通过这些模型,可以更真实地模拟风力发电系统的动态行为,帮助研究人员和工程师更好地理解风电系统的性能特点及其优化方向。 适合人群:从事风力发电系统研究的技术人员、高校相关专业师生、对风电系统感兴趣的科研工作者。 使用场景及目标:①用于风电场的设计和优化;②评估不同风速条件下的风力机性能;③研究飞轮储能模块对电力输出稳定性的贡献。 其他说明:文中提供了完整的Simulink工程源文件和参考文献,便于读者进一步学习和应用。

    实训商业源码-微商城-论文模板.zip

    实训商业源码-微商城-论文模板.zip

    2022全新天狼星网络验证系统源码 开源无授权版

    天狼星网络验证,一个可以注入远程分享弹窗,网络验证的工具你还在用本地注册机吗?你想拥有远程分享弹窗的功能吗?即 刻起就摆脱本地,使用网络注册机! 天狼星网络验证破解,支持一键为软件注入弹窗式网络验证,一键为软件注入全屏式网络验证,支持跳加固注入网络验证, 支持远程引流分享弹窗等等,注入后的软件还有独特的签名验证,防二改,防抓包破解 计算机技术发展到今天,很多优秀的软件已经具备了商业价值,很多软件作者希望自己的软件具有注册功能,但是传统的注册 码解决不了多人使用同一个注册码的问题,机器码(本地验证)的方式又比较容易被破解。这些问题都成为大家制作收费软件 的首要问题刀客源码。本系统就是帮助大家解决这一系列问题。如果你想保护自己的知识产权及将自己的知识产权商业化, 你就一定的试试哦。 完全免费使用用户登录、卡密管理等基本功能,无需担心收费功能影响软件使用! 节省软件成本,不需要购置服务器,登录酸酸云科技后台配置自己的应用程序相关设置,客户端直接调用远程webservices就能 实现网络验证! 缩短开发周期不需要过多的繁琐操作,调用酸酸云科技就可以实现验证机制,无需再书写验证用户登录,用户管理,卡密管理等 繁琐的代码,开发软件只要专注程序代码即可! 安全防破解将重要数据存放在服务器中,只有当客户登陆成功后才会返回相应的重要数据,就算被破解,也有盗版弹窗,也是无 法使用! 支持多程序语言开发同时支持多种程序语言,只要程序能够调用DLL的程序语言都可以调用本插件,例如:按键精灵、易语 言、C#、C++等!

    实训商业源码-智慧农场V1.9.0+拼团1.0.1+报名1.0.6+众筹投资1.1.0+农场乐园1.0.2-论文模板.zip

    实训商业源码-智慧农场V1.9.0+拼团1.0.1+报名1.0.6+众筹投资1.1.0+农场乐园1.0.2-论文模板.zip

    stm32工程文件创建完美模版工程文件

    包含常用所需的全部固件,创建工程只需要复制工程,然后写入主程序代码即可

    繁忙铁路干线施工天窗与列车运行图协同优化研究_于婕.pdf_ (1).pdf

    繁忙铁路干线施工天窗与列车运行图协同优化研究_于婕.pdf_ (1)

    ECharts树图-树图5.zip

    图表效果及代码实现讲解链接:https://blog.csdn.net/zhangjiujiu/article/details/148054080

    cherry-MCP相关软件包.zip

    cherry-MCP相关软件包,包括cherry-MCP组件(Windows版)如uv,uvx等等,以及Cherry-Studio、cursor,node的安装包,提供给需要学习cherry-MCP相关知识的同学。

    电力电子领域中逆变器下垂控制技术的实现及其应用 微电网

    内容概要:本文详细介绍了逆变器下垂控制技术在并网和孤岛模式下的具体实现方法。首先解释了下垂控制的基本概念及其重要性,然后通过具体的代码片段展示了不同模式(如并网模式、孤岛模式)下的控制逻辑。对于并网模式,逆变器跟随电网频率,而在孤岛模式下,则依靠下垂控制调节频率和电压。此外,还讨论了并联运行时可能出现的问题以及解决方案,如功率跷跷板现象和相应的滤波处理。最后,文章强调了实际调试过程中的一些经验和技巧,如动态调整下垂系数以应对不同负载情况。 适合人群:从事电力电子、微电网研究的技术人员,尤其是对逆变器下垂控制感兴趣的工程师。 使用场景及目标:适用于需要理解和实现逆变器下垂控制的工程项目,帮助工程师掌握如何在不同环境下配置和优化逆变器性能。 其他说明:文中提供了多个编程语言的实际代码示例,包括Python、C和Matlab,有助于读者更好地理解理论与实践的结合。同时,作者分享了许多来自真实项目的宝贵经验,使读者能够避免常见的错误和技术陷阱。

Global site tag (gtag.js) - Google Analytics