安全技术学习笔记与分享6——web功能相关知识

本文探讨了HTTP请求如何通过URL查询字符串、REST风格URL、Cookie和POST方法传递参数,分析了现代Web应用程序平台与语言的安全隐患,深入讨论了HTML、CSS、JavaScript等技术在Web安全中的角色,以及同源策略、HTML5、Web2.0和浏览器扩展技术对安全的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

个人归纳:
HTTP请求使用4种主要方式向应用程序传送参数:
1.通过url插叙字符串
2.通过REST风格的url文件路径
3.通过HTTP cookie
4.通过在请求主体中使用POST方法

现在最常见的web应用程序平台和语言很多,我们在使用应用程序时总是会只执行粗略的安全检查,因为他们呢采用了使用的框架。但是事实并非如此。下面我说一下我所学到的一点见解,比如漏洞多在于web应用程序中,而非开发实施过程,所以简言之漏洞并非与开发框架或语言有关。第二点比如(某软)或者(某va)等著名的开发平台都存在开发者先支持一种新型的开发框架,然后出现漏洞了,再无情的转化为此框架使用了第三方的问题框架,这也确实存在。

为了方便以后的知识拓展,先来讲一下相关平台的一些易于混淆的术语:
EJB(enterprise java bean)是一个相对重量级的软件组件,它将一个特殊业务功能的逻辑组合到应用程序中。姑且叫他企业级javabean。
简单传统Java对象(plain old java object,POJO)是一个普通的java对象,用以区别EJB这类特殊对象。多用于轻量级对象中。
Java servlet是一个服务器对象,用以接收客户端的HTTP请求并返回HTTP响应。具有大量的接口方便开发。
Java web容器是一个为基于java的web应用程序提供运行时环境的平台或引擎。tomcat、JBoss都属于此。
1.Html在现在来说已经是一个功能非常强大而且丰富的语言,现在大多使用xhtml,原因就是采用了更加严格的HTML标记,所以防止浏览器必须接收不太严格的HTML而导致各种攻击。 
2.超链接,这个大家都很熟悉,比如<a href="xxxxx">xxx</a>这一种是事先已经设定好的参数,服务器会跳转然后返回相关内容。
3.表单,主要说一下处理过程,第一使用的post方法的属性,浏览器就使用此方法提交表单。第二使用了隐藏参数(提交、重置、隐藏),服务器端应用程序可使用他们控制其逻辑。第三就是跳转URL类似于超链接,但是这个链接是一个预先设定好参数的app,可以这样认为。最后就是请求中包含的一个cookie,此可以用于控制服务器端处理过程。之前说了,cookie主要是辨别用户的身份。
4.css层叠样式表,在早期安全方面不被重视,但是如今很多安全漏洞都被发现。
5.javascript可以轻易接收大多数web应用程序所需输入的丰富用户界面。他有两个好处,第一就是改善应用程序的性能,第二就是提高可用性。JavaScript也常用来执行以下任务。
-确认用户输入的数据避免数据包含错误而提交不必要的请求
-更具用户操作动态修改用户的界面
-查询并更新浏览器内的文档对象模型(DOM),控制浏览器行为。

1.VBScript可以替代javascript,而javascript无法传送入侵程序时,攻击者可以通过它来楚崧针对跨站点脚本之类的入侵程序。
2.Ajax是一组编程技术,不需要重新加载页面或向服务器进行请求,其核心技术使用的是XMLHttpReqest,ajax使用的是与服务器的异步通信,引入Ajax对于ajax的应用程序来说,变相的等于引入了漏洞,对ajax技术了解的攻击者也恰恰是利用了此漏洞。
3.Json是JavaScript对象表示法,用于在执行XMLHttpReqest时,对应用执行相应而返回的数据。同时,也可以使用这个来向服务器传说消息。
4.同源策略是一种关键机制,主要是防止来自不同来源的内容互相干扰。为了防止攻击者在用户不知情的情况下,如果此时用户访问了恶意网站,此时没有同源策略就会导致用户的其他网站信息泄露,比如信用卡的相关信息。其主要特点:
-位于一个域的页面可以向另一个域提出任意数量的请求。但该页面无法处理上述请求返回的数据。
-位于一个域的页面可以加载来自其他域的脚本并自用。因为脚本包含代码而非数据,并不会泄露敏感信息。
-位于一个域的页面无法读取或修改属于另一个域的cookie和其他DOM数据。
这些特点会引起跨域的攻击。所以在扩展技术的同时,很多问题也会变得复杂。

接着上一个部分讲。
HTML5是对HTML的重大更新。从安全角度来看,它引入了各种可用于传送跨站点脚本及实施其他攻击的新标签、属性和API。它对XMLHttpRequest这一核心Ajax技术进行了修改,在某些情况下可以实现双向跨域交互,从而导致新的跨域攻击。它引入了新的客户端数据存储机制,这可能导致用户隐私泄露的情况以及新型攻击方式,如SQL注入。
Web2.0是一个新型流行词,在大量使用Ajax异步操作和各种技术提高跨域集成,以及在客户端使用各种新技术的情况下,多种多样的高科技反而会导致新的漏洞的出现和原先漏洞的复辟,所以web2.0所谓的安全,其实并非如此。
浏览器扩展技术有很多种这里先一一陈列:
-Java applet
-ActiveX控件
-Flash对象
-Silverlight对象
再说说,状态与会话的相关内容。
比如我们在购物车里添加一件商品,服务端会在你的的会话服务器端结构中更新相关内容,再将其正确返回到你的界面。但是每添加一次服务器更新一次往往会给服务器带来很重的负荷。此时,引入了客户端操作状态信息的情况,但为了阻止用户自行修改状态信息,ASP.net采用了ViewState隐藏表单字段,通常此功能还包含一个密钥,防止破坏。
Http本身没有状态,大多数应用程序需要采用某种方法给各种请求重新确认身份,但一般不采用令牌而是直接使用cookie来完成这项任务。此过程中也会产生几种漏洞。以后章节会说到。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言行物恒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值