资讯 news

增加head头信息-请求头和响应头(全平台服务器)

2023-05-12 1388 次

Nginx Web服务器,直接贴代码,如果你的服务器也需要设置Nginx请求头,可以直接使用。


在长期的网站建设软件开发过程种,生产环境的服务器运维服务中最常见的安全设置。


服务器块下的nginx.conf中添加以下参数

server {

      listen       443;

      server_name  ds.v.com;  # 驾驶安全


      location / {

    #Nginx安全配置

    #Strict-Transport-Security响应头缺失

    add_header Strict-Transport-Security 'max-age=15552000';

    #HTTP X-Permitted-Cross-Domain-Policies 响应头缺失

    add_header X-Permitted-Cross-Domain-Policies 'none';

    #点击劫持漏洞(X-Frame-Options)

    add_header X-Frame-Options SAMEORIGIN;

    #Referrer-Policy响应头缺失

    add_header Referrer-Policy "no-referrer";

    #X-Content-Type-Options响应头缺失

    add_header X-Content-Type-Options nosniff;

    #X-Download-Options响应头缺失

    add_header X-Download-Options 'noopen';

    # Content-Security-Policy响应头缺失

    add_header Content-Security-Policy "script-src * 'unsafe-inline' 'unsafe-eval'";

    #X-XSS-Protection响应头缺失

    add_header X-XSS-Protection '1;mode=block';

    #会话cookie中缺少HttpOnly属性

    add_header Set-Cookie "Path=/; HttpOnly; Secure"

        ...

      }

    }



本次操作逐一排查,凡是新增的服务器都相应做了安全设置,以前老客户的服务器之前都已经操作过,不在此次的范围内。


已于昨日处理完毕,此次处理没有影响服务器任何使用。


请求

请求,由客户端向服务端发出,可以分为3部分内容:请求方法(Request Method) 、请求的网址( Request URL )、请求报文(Request message)


请求方法

常见的请求方法有两种:GET和POST。


在浏览器中直接输入 URL 并回车,这便发起了一个 GET 请求,请求的参数会直接包含到 URL里。例如,在百度中搜索 Python ,这就是一个 GET 请求,链接为 https://www. baidu.corn/s?wd=Pthon,其中 URL 中包含了请求的参数信息,这里参数 wd 表示要搜寻的关键字 。


POST 请求大多在表单提交时发起。比如,对于一个登录表单,输入用户名和密码后,点击“登录”按钮,这通常会发起一个 POST请求,其数据通常以表单的形式传输,而不会体现在 URL中。


两者区别

GET 请求中的参数包含在 URL 里面,数据可以在 URL 中看到,而 POST 请求的 URL 会包含这些数据,数据都是通过表单形式传输的,会包含在请求体中。

GET 请求提交的数据最多只有 1024 字节,而 POST 方式没有限制。

一般来说,登录时,需要提交用户名和密码,其中包含了敏感信息,使用 GET 方式请求的话,密码就会暴露在 URL 里面,造成密码泄露,所以这里最好以 POST 方式发送。上传文件时,由于文件内容比较大,也会选用 POST 方式。


其他请求方式



请求报文

由请求行、请求头、请求体组成


请求行

由请求方式和HTTP协议和版本组成


如:GET / HTTP/1.1


请求头

请求头,用来说明服务器要使用的附加信息,比较重要的信息有 Cookie 、Referer、User-Agent等。下面简要说明一些常用的头信息。


Accept

请求报头域,用于指定客户端可接受哪些类型的信息。

Accept-Language

指定客户端可接受的语言类型。

Accept-Encoding

指定客户端可接受的内容编码。

Host

用于指定请求资源的主机 IP 和端口号,其内容为请求 URL 的原始服务器或网关的位置。从HTTP 1. 版本开始,请求必须包含此内容。

Cookie

也常用复数形式 Cookies ,这是网站为了辨别用户进行会话跟踪而存储在用户本地的数据。它的主要功能是维持当前访问会话。例如,我们输入用户名和密码成功登录某个网站后,服务器会用会话保存登录状态信息,后面我们每次刷新或请求该站点的其他页面时,会发现都是登录状态,这就是Cookies 的功劳。Cookies 里有信息标识了我们所对应的服务器的会话,每次浏览器在请求该站点的页面时,都会在请求头中加上 Cookies 并将其发送给服务器服务器通过 Cookies 识别出是我们自己,并且查出当前状态是登录状态,所以返回结果就是登录之后才能看到的网页内容。

Referer

此内容用来标识这个请求是从哪个页面发过来的,服务器可以拿到这 信息并做相应的处理,如做来源统计、防盗链处理等。

User-Agent

简称 UA ,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本 浏览器及版本等信息 在做爬虫时加上此信息,可以伪装为浏览器;如果不加,很可能会被识别出为爬虫。


Content-Type


也叫互联网媒体类型( Internet Media Type )或者 MIME 类型,在 HTTP协议消息头中,它用来表示具体请求中的媒体类型信息。例如, text/html 代表 HTML 格式,image/gif 代表 GIF 图片, application/json 代表JSON 类型,


在爬虫中,如果要构造 POST 请求,需要使用正确的 Content-Type,并了解各种请求库的各个参数设置时使用的是哪种 Content-Type,不然可能会导致 POST 提交后无法正常响应。




请求体

内容是 POST 请求中的表单数据,而对于 GET 请求,请求体则为空。


响应

响应,由服务端返回给客户端,响应报文可以分为三部分:响应行( Response line )、响应头( Response Headers )和响应体( Response Body)。


响应行

由HTTP版本响应、状态码、状态描述组成。


如;HTTP/1.1 200 OK


响应状态码

表示服务器的响应状态。


常见的状态码有:


200

请求成功

307

重定向

400

错误的请求

404

请求资源在服务器中不存在

500 

服务器内部源代码出现错误

状态码和错误原因如下图:


响应头

用来说明响应的数据


常用的响应头如下:


Accept-Patch

指定服务器所支持的文档补丁格式

Accept-Ranges

服务器所支持的内容范围

Content-Disposition

对已知MIME类型资源的描述,浏览器可以根据这个响应头决定是对返回资源的动作,如:将其下载或是打开。

Content-Encoding

响应资源所使用的编码类型。

Content-Language

响就内容所使用的语言

Content-Length

响应消息体的长度,用8进制字节表示

Content-Type

当前内容的MIME类型

Date

此条消息被发送时的日期和时间(以RFC 7231中定义的"HTTP日期"格式来表示)

Expires

指定一个日期/时间,超过该时间则认为此回应已经过期

Server

服务器的名称

响应体

就是网页的代码


关联标签:
最新更新:
返回顶部