谢谢邀请!
1.Web浏览器的工作原理
1.1 Web浏览器由在您的计算机上运行并在Web上显示主页的客户端软件组成。有许多设备的客户端,包括Windows,Macintosh和Unix计算机。
1.2 与大部分互联网一样,万维网在客户端/服务器模型上运行。您在计算机上运行Web客户端 – 称为Web浏览器 – 例如Microsoft的Internet Explorer或Firefox。该客户端联系Web服务器并请求信息或资源。Web服务器找到然后将信息发送到Web浏览器,Web浏览器显示结果。
1.3 当Web浏览器联系服务器时,它们会要求发送使用超文本标记语言(HTML)构建的页面。浏览器会解释这些页面并将其显示在您的计算机上。它们还可以显示使用Java和ActiveX等编程语言创建的应用程序,程序,动画和类似材料,JavaScript等脚本语言以及AJAX等技术。
1.4 有时,主页包含Web浏览器无法播放或显示的文件的链接,例如声音或动画文件。在这种情况下,您需要一个插件或一个帮助应用程序。您可以配置Web浏览器或操作系统,以便在遇到浏览器无法运行或播放的声音,动画或其他类型的文件时使用帮助应用程序或插件。
多年来,Web浏览器变得越来越复杂。浏览器现在是功能齐全的软件套件,可以完成从视频会议到创建和发布HTML页面的所有功能。浏览器现在也模糊了本地计算机和Internet之间的界限 – 实质上,它们可以使您的计算机和Internet作为单个计算机系统运行。
1.5 浏览器越来越多地不仅仅是一个软件,而是整个套件。例如,最新版本的Internet Explorer包括安全功能,例如反网络钓鱼过滤器。Firefox浏览器有一个名为Thunderbird的配套电子邮件软件,也可以下载。
浏览互联网时,最令人沮丧的体验之一是浏览器在联系网站时遇到问题时显示的错误消息。根据您使用的浏览器以及您使用的浏览器版本,这些消息可能会有所不同。有时浏览器会以简单的英语显示错误消息 – 但更常见的是它们不会。本章的最后一个插图列出了最常见的浏览器错误消息 – 以及它们的含义。
2.基于浏览器而衍生的Web应用安全性
2.1 互联网是一个危险的地方!大家非常有规律地听说网站由于拒绝服务攻击而变得不可用,或者在其主页上显示修改过的(通常是破坏性的)信息。在其他备受瞩目的案例中,数以百万计的密码,电子邮件地址和信用卡详细信息已泄露到公共领域,使网站用户面临个人尴尬和财务风险。
2.2 网站安全的目的是防止这些(或任何)类型的攻击。网站安全的更正式定义是保护网站免受未经授权的访问,使用,修改,破坏或中断的行为/做法。
2.3 有效的网站安全性需要整个网站的设计工作:在您的Web应用程序中,Web服务器的配置,创建和更新密码的策略以及客户端代码。虽然所有这些听起来都很不祥,但好消息是,如果您使用的是服务器端Web框架,它几乎肯定会启用“默认情况下”强大且经过深思熟虑的防御机制来抵御一些更常见的攻击。可以通过Web服务器配置缓解其他攻击,例如启用HTTPS。最后,有一些公开的漏洞扫描程序工具可以帮助您查明是否有任何明显的错误。
3.基于web浏览器的网站安全威胁
偶仅列出一些最常见的网站威胁以及如何减轻这些威胁。
3.1跨站点脚本(XSS)
XSS是一个术语,用于描述一类攻击,允许攻击者通过网站将客户端脚本注入其他用户的浏览器。因为注入的代码从站点进入浏览器,所以代码是可信的,并且可以执行诸如将用户的站点授权cookie发送给攻击者之类的操作。当攻击者拥有cookie时,他们可以像访问用户一样登录站点并执行用户可以执行的任何操作,例如访问其信用卡详细信息,查看联系人详细信息或更改密码。防止XSS漏洞的最佳方法是删除或禁用任何可能包含运行代码的指令的标记。对于HTML这种包括元素,如<script>,<object>,<embed>,和<link>。
修改用户数据以使其不能用于运行脚本或以其他方式影响服务器代码执行的过程称为输入清理。默认情况下,许多Web框架会自动清理HTML表单中的用户输入。
3.2 SQL注入
SQL注入漏洞使恶意用户能够在数据库上执行任意SQL代码,无论用户的权限如何,都可以访问,修改或删除数据。成功的注入攻击可能会欺骗身份,使用管理权限创建新身份,访问服务器上的所有数据,或销毁/修改数据以使其无法使用。要避免此类攻击,必须确保传递给SQL查询的任何用户数据都不能更改查询的性质。一种方法是转义用户输入中具有SQL特殊含义的所有字符。
3.3跨站请求伪造(CSRF)
CSRF攻击允许恶意用户使用其他用户的凭据执行操作,而无需用户的知情或同意。这种类型的攻击最好用例子来解释。John是一个恶意用户,他知道某个特定站点允许登录用户使用POST包含帐户名和金额的HTTP 请求向指定帐户汇款。John构建了一个表单,其中包含他的银行详细信息和一定数量的金钱作为隐藏字段,并通过电子邮件将其发送给其他网站用户(使用“ 提交”按钮伪装成“快速致富”网站的链接)。防止此类攻击的一种方法是服务器要求POST请求包含用户特定的站点生成的秘密。当发送用于进行传输的Web表单时,服务器将提供该秘密。这种方法阻止John创建自己的表单,因为他必须知道服务器为用户提供的秘密。即使他发现了秘密并为特定用户创建了表单,他也不再能够使用相同的表单来攻击每个用户。
3.4其他威胁科
其他常见的攻击/漏洞包括:
点击劫持。在此次攻击中,恶意用户劫持了对可见顶级站点的点击,并将其路由到下方的隐藏页面。例如,可以使用此技术显示合法的银行站点,但将登录凭据捕获到<iframe>攻击者控制的不可见状态。Clickjacking也可用于让用户单击可见站点上的按钮,但这样做实际上是在不知不觉中单击一个完全不同的按钮。作为辩护,您的网站可以通过设置相应的HTTP标头来阻止自己嵌入到另一个网站的iframe中。
拒绝服务(DoS)。DoS通常通过使用虚假请求充斥目标站点来实现,以便合法用户对站点的访问中断。请求可能很多,或者它们可能单独消耗大量资源(例如,慢速读取或上载大文件)。DoS防御通常通过识别和阻止“坏”流量,同时允许合法消息通过。这些防御通常位于Web服务器之前或之中(它们不是Web应用程序本身的一部分)。
目录遍历(文件和披露)。在此攻击中,恶意用户尝试访问他们无法访问的Web服务器文件系统的某些部分。当用户能够传递包含文件系统导航字符的文件名(例如,../../)时,会发生此漏洞。解决方案是在使用之前清理输入。
文件包含。在此攻击中,用户可以指定“非预期”文件,以便在传递给服务器的数据中显示或执行。加载时,此文件可能在Web服务器或客户端执行(导致XSS攻击)。解决方案是在使用之前清理输入。
命令注入。命令注入攻击允许恶意用户在主机操作系统上执行任意系统命令。解决方案是在用户输入可用于系统调用之前对其进行清理。
这些是偶经验与理解之谈,希望对你有帮助!