news 2026/5/7 6:22:33

web安全(一):Web安全入门

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
web安全(一):Web安全入门

web安全(一):Web安全入门

一、Web安全性措施

1、身份验证
验证是识别一个人或系统(如应用程序)以及检验其资格的过程。在Intenet领域,验证一个用户的基本方法通常是用户名和口令。
2、授权
授权是确定用户是否被允许访问他所请求的资源的过程。例如:在银行系统中,你只能访问你的银行账户,而不能访问别人的银行账户。授权通常是通过一个访问控制列表(ACL)强制实施,该列表指定了用户和它所访问的资源的类型。
3、数据完整性
数据完整性是指数据从发送者传输到接收者的过程中数据不被破坏。
4、数据保密性
数据保密性是保证除了应该访问它的用户外,别人都不能访问。
注意:授权与保密的区别
二者对信息的保密方式不同。授权是防止信息到达无权访问的用户,而保密是保证信息即使被非法获取,也不能被使用。

二、验证的类型

1、HTTP Basic验证
HTTP的基本验证。它是由HTTP1.1规范定义的,是一种保护资源的最简单和最常用的验证机制。当浏览器请求任何受保护的资源时,服务器都要求一个用户名和口令。只有用户输入了合法的用户名/口令,服务器才发送资源。
2、HTTP Digest验证
HTTP摘要验证。除了口令是以加密的方式发送,其他与基本验证一样。
优点:比基本验证安全。
缺点:只能被IE5以上版本支持,许多Servlet容器不支持。
3、FORM-Based验证
基于表单的验证。它类似于基本验证,但它使用用户自定义的表单来获得用户名和口令。开发时必须创建包含表单的HTML页面。
4、HTTPS Client验证
客户证书验证。它采用HTTPS传输信息。HTTPS是在安全套接层之上的HTTP,SSL可以保证Internet上敏感数据传输的保密性。在这种机制中,当浏览器和服务器之间建立起SSL连接后,所有的数据都以加密的形式传输。
优点:是这几种验证中最安全的。所有常用的浏览器都支持这种验证。
缺点:它需要一个证书授权机构。

三、基本验证过程

客户请求一个受保护资源时,浏览器和Web容器之间实现身份验证的过程:
1)浏览器向某个受保护资源(Servlet或JSPP)发送请求。此时,浏览器并不知道资源是受保护的,所以它发送的请求是一般的HTTP请求,如:

GET/login.do HTTP/1.1

2)当服务器接收到对资源的请求后,首先在访问控制列表(ACL)中查看该资源是否是受保护的资源。如果不是,服务器将该资源发送给用户;如果是,它并不直接发送该资源,而是向客户发送一个401 Unauthorized(非授权)消息。在该消息中包含一个响应头告诉浏览器访问该资源需要验证。响应消息中还包括验证方法和安全域名称以及请求内容的长度和类型。
3)当浏览器收到响应消息后,打开一个对话框提示输入用户名和密码。
4)当服务器收到该请求,它将访问访问控制列表中检验用户名和密码,如果是合法用户且该用户可以访问该资源,它将发送资源并在浏览器中显示出来;否则,它将再一次发送401 Unauthorized消息,浏览器再一次显示用户名/密码对话框。

四、声明式安全与编程式安全

1)声明式安全:是一个应用程序的安全结构,包括角色、访问控制及验证需求都在应用程序外部表示。在应用程序内通过部署描述文件(web.xml)声明安全约束。它仅能针对URL来设置哪些资源必须受到保护。
2)编程式安全:主要使用HttpServletRequest接口中的有关方法实现。

五、用户与角色

每个用户可以拥有一个或多个角色,每个角色限定了可访问的Web资源。在Web应用中,对资源的访问权限一般是分配给角色而不是实际的用户。一个用户可以访问其拥有的所有角色对应的Web资源。
安全域模型的使用
1)定义角色、用户以及用户与角色的映射
tomcat-users.xml

<tomcat-users> <role rolename="xxxx" /> <role rolename="xxxx"/> …… <user username="xxxx" password="xxxx" /> <user username="xxxx" password="xxxx" roles="xxxx"/> </tomcat-users>

注意:在tomcat-users.xml中添加或者修改就鄂塞和用户后需要重新启动tomcat。
2)定义安全约束
(1)<security-constraint>定义受保护的Web资源集合、访问资源的角色以及用户数据的约束
<web-resource-collection>定义一个或者多个Web资源集合
<auth-constraint>指定可以访问受限资源的角色
<user-data-constraint>指定数据应该如何在客户与服务器之间传输

(2)<login-config>元素 定义使用的验证机制。验证机制不同,当Web客户访问受保护的Web资源时,系统弹出的对话框不同
(3)<security-role>元素 用来定义安全约束中引用的所有角色名

《网络安全从零到精通全套学习大礼包》

96节从入门到精通的全套视频教程免费领取

如果你也想通过学网络安全技术去帮助就业和转行,我可以把我自己亲自录制的96节 从零基础到精通的视频教程以及配套学习资料无偿分享给你。

网络安全学习路线图

想要学习 网络安全,作为新手一定要先按照路线图学习方向不对,努力白费。对于从来没有接触过网络安全的同学,我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线,大家跟着这个路线图学习准没错。

配套实战项目/源码

所有视频教程所涉及的实战项目和项目源码

学习电子书籍

学习网络安全必看的书籍和文章的PDF,市面上网络安全书籍确实太多了,这些是我精选出来的

面试真题/经验

以上资料如何领取?

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/7 6:22:33

从COM困惑到豁然开朗:一个C++程序员如何理解并上手CATIA CAA开发

从COM困惑到豁然开朗&#xff1a;C程序员如何掌握CATIA CAA开发 第一次打开CATIA CAA文档时&#xff0c;那种扑面而来的陌生感至今记忆犹新。作为有五年C经验的开发者&#xff0c;我习惯性地寻找熟悉的类继承图和new操作符&#xff0c;却发现眼前满是IUnknown、QueryInterface这…

作者头像 李华
网站建设 2026/5/7 6:21:00

如何利用开源明日方舟游戏资源库解决你的二次创作素材难题

如何利用开源明日方舟游戏资源库解决你的二次创作素材难题 【免费下载链接】ArknightsGameResource 明日方舟客户端素材 项目地址: https://gitcode.com/gh_mirrors/ar/ArknightsGameResource 作为一名游戏开发者、二次元创作者或者内容生产者&#xff0c;你是否曾为寻找…

作者头像 李华
网站建设 2026/5/7 6:12:16

Windows WSL环境搭建OpenClaw机器人开发环境全攻略

1. 项目概述&#xff1a;在Windows上为OpenClaw构建WSL开发环境 如果你是一个对机器人或自动化控制感兴趣的开发者&#xff0c;最近可能听说过OpenClaw这个开源项目。它是一个设计精巧的机械爪控制库&#xff0c;旨在为机器人爱好者、学生和研究人员提供一个低成本、高性能的硬…

作者头像 李华