知识点
1.网站搭建前置知识
域名,子域名,DNS,HTTP/HTTPS,证书等
注册购买域名:阿里云企航_万网域名_商标注册_资质备案_软件著作权_网站建设-阿里云
2.web应用环境架构类
理解不同WEB应用组成角色功能架构:
开发语言,程序源码,中间件容器,数据库类型,服务器操作系统,第三方软件等
开发语言:asp,php,aspx,jsp,java,python,ruby,go,html,javascript等程序源码:根据开发语言分类;应用类型分类;开源CMS分类;开发框架分类等
中间件容器:IIS,Apache,Nginx,Tomcat,weblogic,Jboos,glasshfish等数据库类型:Access,Mysql,Mysql,Oracle,db2,Sybase,Redis,MongoDB等
服务器操作系统:windows系列,Linux系列,Mac系列等
第三方软件:phpmyadmin,vs-ftpd,VNC,ELK,Openssh等
3.web应用安全漏洞分类
1. 注入漏洞
SQL注入:攻击者通过在输入字段中插入恶意的SQL代码,欺骗后端数据库执行非预期的SQL命令,从而可能获取数据库中的敏感信息或执行恶意操作。
命令注入:与SQL注入类似,但攻击者尝试在应用程序中注入操作系统命令,以执行未授权的操作。
2. 跨站脚本攻击(XSS)
攻击者将恶意脚本嵌入到Web页面中,当其他用户浏览该页面时,恶意脚本会在用户的浏览器中执行,窃取用户的cookie、会话令牌等敏感信息,或进行其他恶意操作。
3. 跨站请求伪造(CSRF)
攻击者诱使用户在已登录的Web应用程序上执行未授权的操作,如更改密码、转账等。这种攻击利用了Web的自动登录机制,使得攻击者能够伪装成受害者进行操作。
4. 服务器端请求伪造(SSRF)
攻击者通过应用程序服务器向外部网络发出请求,通常用于绕过防火墙和访问内部系统。这种攻击可能导致敏感信息泄露、端口扫描等危害。
5. 文件上传漏洞
攻击者通过Web应用程序上传恶意文件,如Web shell、病毒等,从而控制服务器或传播恶意软件。
6. 文件包含漏洞
攻击者通过包含外部文件的方式,执行恶意代码或访问敏感文件。这种漏洞通常由于文件包含路径未进行充分验证而引起。
7. 认证和授权漏洞
包括弱密码策略、密码泄露、身份识别错误等,这些漏洞可能导致未经授权的用户访问应用程序或敏感信息。
8. 安全配置错误
应用程序的配置不当,如默认设置不安全、权限设置错误等,可能导致敏感信息泄露或系统被攻陷。
9. 不安全的加密存储
应用程序未使用安全的加密算法或密钥管理策略,导致敏感信息(如密码、密钥等)在存储过程中被泄露。
10. SSL/TLS配置错误
SSL/TLS配置不当,如证书不受信任、协议版本过旧等,可能导致中间人攻击、数据泄露等安全威胁。
11. 点击劫持
攻击者通过技术手段欺骗用户的浏览器访问一个伪装的页面,诱导用户点击某些按钮或链接,从而执行恶意操作。
12. 拒绝服务攻击(DoS)
通过大量合法的或非法的请求使目标系统资源耗尽,导致系统无法正常处理合法请求。
防范措施
针对这些安全漏洞,可以采取以下防范措施:
对用户输入进行严格的验证和过滤,防止注入攻击和XSS攻击。
使用HTTPS协议保护数据传输过程中的安全。
实施严格的访问控制和权限管理策略,防止未授权访问和敏感信息泄露。
定期对系统进行安全审计和漏洞扫描,及时发现并修复安全漏洞。
加强用户教育,提高用户的安全意识,避免点击不明链接或下载恶意软件。
4.web请求返回过程数据包
Web请求返回过程数据包的详细解析:
一、DNS解析阶段
DNS请求数据包:
内容:当用户在浏览器中输入一个域名(如www.example.com)并尝试访问时,浏览器会首先向DNS服务器发送一个DNS查询请求。这个请求数据包中包含了用户想要解析的域名。
作用:请求DNS服务器将域名转换为对应的IP地址。
DNS响应数据包:
内容:DNS服务器在收到查询请求后,会返回一个包含域名对应IP地址的响应数据包。
作用:使浏览器能够知道应该向哪个IP地址发送HTTP请求。
二、TCP连接建立阶段
TCP SYN数据包(同步序列编号):
内容:在HTTP请求发送之前,客户端(通常是浏览器)会向服务器发送一个SYN数据包,以请求建立TCP连接。
作用:初始化TCP连接的建立过程。
TCP SYN-ACK数据包(同步序列编号-确认):
内容:服务器收到SYN数据包后,会回复一个SYN-ACK数据包,表示同意建立连接。
作用:确认客户端的SYN请求,并发送自己的初始序列号给客户端。
TCP ACK数据包(确认):
内容:客户端收到SYN-ACK数据包后,会回复一个ACK数据包,表示连接已建立。
作用:完成TCP连接的三次握手过程,确认双方都已准备好进行数据传输。
三、HTTP请求与响应阶段
HTTP请求数据包:
内容:一旦TCP连接建立,客户端会向服务器发送一个HTTP请求数据包。这个数据包包含了请求的方法(如GET、POST等)、请求的URL、HTTP版本以及请求头等信息。
作用:请求服务器返回指定的资源或执行特定的操作。
HTTP响应数据包:
内容:服务器在收到HTTP请求后,会处理该请求并返回一个HTTP响应数据包。这个数据包包含了状态码(如200 OK、404 Not Found等)、响应头以及响应体(即实际请求的资源内容)等信息。
作用:将请求的资源或操作结果返回给客户端。
四、TCP连接关闭阶段
TCP FIN数据包(结束):
内容:当数据传输完成后,一方(通常是客户端)会发送一个FIN数据包给对方,表示希望关闭TCP连接。
作用:发起TCP连接的关闭过程。
TCP ACK数据包(确认):
内容:收到FIN数据包的一方会回复一个ACK数据包,表示已确认收到关闭连接的请求。
作用:确认TCP连接的关闭过程。
HTTP请求头含义:HTTP 请求头各参数具体含义_yihe595.co-CSDN博客
状态码:
100: Continue 继续。客户端应继续其请求。
101: Switching Protocols 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议
200:OK 请求成功。一般用于GET与POST请求
201:Created 已创建。成功请求并创建了新的资源
202:Accepted 已接受。已经接受请求,但未处理完成
203:Non-Authoritative Information 非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本
204:No Content 无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档
205:Reset Content 重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域
206:Partial Content 部分内容。服务器成功处理了部分GET请求
300:Multiple Choices 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择
301:Moved Permanently 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302:Found 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
303:See Other 查看其它地址。与301类似。使用GET和POST请求查看
304:Not Modified 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
305:Use Proxy 使用代理。所请求的资源必须通过代理访问
306:Unused 已经被废弃的HTTP状态码
307: Temporary Redirect 临时重定向。与302类似。使用GET请求重定向
400:Bad Request 客户端请求的语法错误,服务器无法理解
401:Unauthorized 请求要求用户的身份认证
402:Payment Required 保留,将来使用
403:Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求
404:Not Found 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
405:Method Not Allowed 客户端请求中的方法被禁止
406:Not Acceptable 服务器无法根据客户端请求的内容特性完成请求
407:Proxy Authentication Required 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权
408:Request Time-out 服务器等待客户端发送的请求时间过长,超时
409:Conflict 服务器完成客户端的PUT请求是可能返回此代码,服务器处理请求时发生了冲突
410:Gone 客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置
411: Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息
412: Precondition Failed 客户端请求信息的先决条件错误
413: Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息
414: Request-URI Too Large 请求的URI过长(URI通常为网址),服务器无法处理
415: Unsupported Media Type 服务器无法处理请求附带的媒体格式
416: Requested range not satisfiable 客户端请求的范围无效
417: Expectation Failed 服务器无法满足Expect的请求头信息
500: Internal Server Error 服务器内部错误,无法完成请求
501: Not Implemented 服务器不支持请求的功能,无法完成请求
502: Bad Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
503: Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中
504: Gateway Time-out 充当网关或代理的服务器,未及时从远端服务器获取请求
505: HTTP Version not supported 服务器不支持请求的HTTP协议的版本