聊聊web安全

news/2024/12/21 15:25:49/文章来源:https://www.cnblogs.com/euler-blog/p/18620802

先说一个基础知识:URL和URI的区别?

url(Uniform Resource Locator,统一资源定位符)

是用于标识互联网上资源的地址,它不仅指定了资源的位置,还包括了用于访问该资源的协议。例如,http://www.example.com/index.html 就是一个 URL,它明确指出了使用 HTTP 协议访问 www.example.com 网站的 index.html 文件

uri(Uniform Resource Identifier,统一资源标识符)

是一个更广泛的概念,它只用于标识资源,而不涉及如何访问这些资源。URI 可以是 URL,但也可以是 URN(Uniform Resource Name,统一资源名称)等其他形式。例如,mailto:example@example.com 是一个 URI,但不是 URL,它只是标识了一个电子邮件地址这个资源。

http详解

 http协议 HTTP 协议目前最新版的版本是1.1,HTTP是一种无状态的协议。无状态是指Web浏览器 与Web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后 Web服务器返回响应(Response),连接就被关闭了,在服务器端不保留连接的有关信息。也就 是说,HTTP请求只能由客户端发起,而服务器不能主动向客户端发送数据。

 请求响应

HTTP请求包括三部分,分别是请求行(请求方法)、请求头(消息报头)和请求正文。下面是HTTP请求的一个例子。

POST/1ogin.php HTTP/1.1    //请求行

HOST:www.xxser.com //请求头

User-Agent:Mozilla/5.0(Windows NT 6.1;rv:15.0) Gecko/20100101 Firefox/15.0 //空白行,代表请求头结束

Username=admin&password-admin //请求正文

 

与HTTP请求对应的是HTTP响应,HTTP响应也由三部分内容组成,分别是响应行、响 应头(消息报头)和响应正文(消息主题)。下面是一个经典的HTTP响应。

HTTP/1.1200OK //响应行

Date:Thu,28Feb 201307:36:47 GMT //响应头

Server:BWS/1.0

Content-Length:4199

Content-Type:text/html;charset=utf-8

Cache-Control:private

Expires:Thu,28 Feb 2013 07:36:47GMT

Content-Encoding:gzip

Set-Cookie: H_PS_PSSID=20221438_1944_1788; path=/;domain=,xxser.com

Connection:Keep-Alive //空白行,代表响应头结束

<htm1> //响应正文或者叫消息主题

<head><title>Index.html</title>

</head>

 

请求方式

get/post/head/put/delete./trace/options/connect/

状态码

1xx:信息提示,表示请求已被成功接收,继续处理。其范围为100~101。

2xx:成功,服务器成功地处理了请求。其范围为200~206。

3xx:重定向,重定向状态码用于告诉浏览器客户端,它们访问的资源已被移动,并告 诉客户端新的资源地址位置。这时,浏览器将重新对新资源发起请求。其范围为300~ 305。

4xx:客户端错误状态码,有时客户端会发送一些服务器无法处理的东西,比如格式错 误的请求,或者最常见的是,请求一个不存在的URL。其范围为400~415

常见的状态码:

200:容户端请求成功,是最常见的状念。
302 :重定向。
404 : 请求资源不存在是最常见的状态。
400:客户端请求有语法错误,不能被服务器所理解。
401: 请求术经授权。
403:服务器收到请求,但是拒绝提供服务。
500 : 服务内部错误 ,是最常见的状念。 503:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。

 

http消息

请求头

key value解释
Host Host请求报头域主要用于指定被请求资源的Interet主机和端口号,例如:HOST: www.xxser.com:801。
User-Agent User-Agent请求报头域允许客户端将它的操作系统、浏览器和其他属性告诉服务器。登录 一些网站时,很多时候都可以见到显示我们的浏览器、系统信息,这些都是此头的作用,如: User-Agent: My privacy
Referer Referer包含一个URL,代表当前访问URL的上一个URL,也就是说,用户是从什么地方 来到本页面。如:Referer: www.xxer.com/login.php,代表用户从login.php来到当前页面。
Range Range可以请求实体的部分内容,多线程下载一定会用到此请求头。例如:表示头500字节:bytes=0~499
Cookie Cookie是非常重要的请求头,它是一段文本,常用来表示请求者身份等。在后面将会详细 讲述Cookie。
Accept Accp请求报头域用于指定客户端接收哪些MIME类型的信息,如Accep: texthml,表 明客户端希望接收HTML 文本。
Accept-Charset Accp-Charset请求报头城用于指定客户端接收的字符集。例如:Accp-Charsetio-859-1, gb2312。如果在请求消息中没有设置这个域,默认是任何字符集都可以接收。
更多的头信息可以参考这个 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Accept

响应头

key value解释
Server   服务器所使用的Web服务器名称,如Server:Apache/1.3.6(Unix),攻击者通过查看此头,可 以探测Web服务器名称。所以,建议在服务器端进行修改此头的信息。
Set-Cookie 向客户端设置Cookie,通过查看此头,可以清楚地看到服务器向客户端发送的Cookie 信息。
Last-Modified 服务器通过这个头告诉浏览器,资源的最后修改时间。
Location 服务器通过这个头告诉浏览器去访问哪个页面,浏览器接收到这个请求之后,通常会立刻 访问Location头所指向的页面。这个头通常配合302状态码使用。
Refresh 服务器通过Refresh头告诉浏览器定时刷新浏览器。
更多响应头参考这里 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/100

 

 

 

 

 

 

 

更多的关于http协议的内容,可以去看看这个网站:https://developer.mozilla.org/zh-CN/docs/Web。  这里面讲的很详细了 。

信息探测

收集web信息

可以使用一些关键字在搜索引擎探测:

关键字描述示例用途
site 指定域名 site:example.com 快速聚焦特定网站,获取该网站内与关键字相关的信息
intext 正文中存在关键字的网页 intext: 敏感信息 filetype:txt 挖掘网站中正文包含特定关键词的文本内容
intitle 标题中存在关键字的网页 intitle: 新闻 关键词 定位与特定主题相关的网页标题
info 获取一些基本信息 info:website.com 提供网站的初步了解和背景信息
inurl URL 中存在关键字的网页 inurl: 产品展示 找到与特定主题相关的网页链接
filetype 搜索指定文件类型 filetype:pdf 技术文档 筛选特定类型的文件资源

 

漏洞扫描

漏洞扫描也属于一种信息探测,使用扫描器可以帮组我们发现更多的问题。

可以使用下面几种进行扫描:

Burp Suite
AWVS
AppScan

 

 

 

 

具体使用方式,可以自行百度。使用这些工具发先漏洞问题,后面就是如何防止这些漏洞发生。

 

漏洞原理

sql注入

2013年大学老师讲的案例是这样的:一个后台登陆页面,输入用户名密码后,后端拿着接受到的账号密码去验证。但是这个验证的过程是通过sql的条件比对进行的。所以,这些条件完全就依赖于用户在客户端输入的数据,如果输入的内容包含 “or 1=1 or” 这样的条件的时候,就已经注入了脚本。

说到底,是因为服务端的信任了客户端输入的数据,才会导致最终的执行结果。所以,对于客户端输入的任意的内容,都要视为不可靠的内容。

下面说说注入的分类
1.数字型注入

比如对输入的数字类型进行注入的情况:

select * from table where id = 8 `  //对于这样的查询肯定是会报错的,因为源ID是数字类型的

//如果注入的条件是id=8 and 1=1
select * from table where id=8 and 1=1 //对于这样的sql和正常的结果是一样的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/856376.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

移动端笔记应用,markdown应用选用

要求不能有广告。作为使用频率较高的软件,有广告就是恶心人。 支持markdown,包括且不限于代码块、标题、图片等格式。 支持同步,至少拥有WebDav云同步,或者本地导入导出。 全局搜索功能。以上功能必须免费,至少我不明白导入导出有什么好付费的。云同步这种付费理所当然。背…

一个.NET开源、易于使用的屏幕录制工具

前言 一款高效、易用的屏幕录制工具能够极大地提升我们的工作效率和用户体验,今天大姚给大家分享一个.NET开源、免费、易于使用的屏幕录制工具:Captura。 工具介绍 Captura是一款基于.NET开源、免费、易于使用的屏幕录制、截图工具,允许用户录制屏幕活动、捕获屏幕截图、录制…

CDN信息收集

引子:这篇是对架构信息收集中CDN部分的补充,由于Web应用先得注册域名才能使用CDN服务,而我国境内的域名注册需先要备案。又因为笔者目前并没有这方面的需求,因此本文仅简单介绍该如何识别CDN,以及一些常见的CDN绕过方式。免责声明:本文章仅用于交流学习,因文章内容而产生…

20结构伪类-borderz制图-网络字体-字体图标

一、结构伪类-:nth-child 在一些特殊的场景使用结构伪类还是非常方便的。 是真正有用的东西。 之前使用最主要的东西是nth-child() :nth-child(1)这个是选择父元素中的第一个子元素如果是下图这样就不能选中了。这里需要使用另外一个东西,叫做:nth-of-type()用这个东西可以选择…

【关节电机专栏】小米 CyberGear 电机和大然 PDA-04 CAN接口的区别

小米电机CAN接口:大然PDA-04 CAN接口:可见两家的CAN接口 CANL 和 CANH 是相反的。

BBU-Python期末考试复习题目总结

临近期末,抽个时间把BBU - python期末考试会考的题型(原题?)哈哈总结一下,放到我的个人bolg上供大家参考,祝考试高分通过————临近期末,抽个时间把BBU - python期末考试会考的题型(原题?)哈哈总结一下,python考试是比较简单的,题型分为选择题,判断题,填空题,程序…

老生常谈——分布式限流:部分Sentinal源码解读

基础知识HTTP CODE = 429 “请求过多”A. 限流的类型服务端客户端限流的标的IP用户...基本要求准确限制过量的请求。低延时。限流器不能拖慢HTTP响应时间。尽量占用较少的内存。这是一个分布式限流器,可以在多个服务器或者进程之间共享。需要处理异常。当用户的请求被拦截时,…

可扩展系统——基于SPI扩展

一、我们为什么讨论SPI? 为具有悠久历史的大型项目(屎山)添加新功能时,我们常常不太好评估变更的影响范围。因为原系统不具备良好的扩展性,导致修改整体发散,且不易单测。此时可以考虑使用接口来描述业务逻辑较为稳定的流程,并使用SPI机制来灵活的隔离加载实际的实现,来…

大模型--采样技术 TopK TopP 惩罚系数--37

目录1. 参考2. 概述重复惩罚(Repetition Penalty) 1. 参考 https://mp.weixin.qq.com/s/mBZA6PaMotJw7WeVdA359g 2. 概述 大型语言模型(LLMs)通过“根据上下文预测下一个 token 的概率分布”来生成文本。最简单的采样方法是贪心采样(Greedy Sampling),它在每一步选择概率…

关于分布式锁的的思考

关于分布式锁的的思考 结论先行: 对于分布式锁我们在考虑不同方案的时候需要先思考需要的效果是什么?为了效率(efficiency),协调各个客户端避免做重复的工作。即使锁偶尔失效了,只是可能把某些操作多做一遍而已,不会产生其它的不良后果。比如重复发送了一封同样的 email(…

2024-12-21:从魔法师身上吸取的最大能量。用go语言,在一个神秘的地牢里,有 n 名魔法师排成一列。每位魔法师都有一个能量属性,有的提供正能量,而有的则会消耗你的能量。 你被施加了一种诅咒,吸

2024-12-21:从魔法师身上吸取的最大能量。用go语言,在一个神秘的地牢里,有 n 名魔法师排成一列。每位魔法师都有一个能量属性,有的提供正能量,而有的则会消耗你的能量。 你被施加了一种诅咒,吸收来自第 i 位魔法师的能量后,你会立即被传送到第 (i + k) 位魔法师。在这个…