当今互联网时代,安全问题是一件不容忽视的事情。下边列出了一些我在日常总结的一些nginx安全方面配置示例,在大部分拦截配置示例中都采用了响应444
状态码。444
是nginx内部定义的一个响应状态码,其含义是不进行任何响应,直接断开连接;响应444
状态码有助于减少在没必要的请求上的性能消耗,将宝贵的服务器资源留给更有意义的请求。
屏蔽服务器信息
1 | http { |
以上是屏蔽nginx版本信息和Server头信息的配置示例。
禁止网站被嵌入iframe
1 | http { |
通过添加X-Frame-Options
头来限制客户端使用iframe
框架嵌入网站页面。
禁止通过IP访问网站
1 | server { |
说明:这里指定了一个默认server,所有未匹配其他server_name的访问请求都会被这个server接收。
限制请求方法
1 | server { |
示例仅允许GET
和POST
请求;使用时应当结合自己的实际需要进行配置。
限制程序请求
1 | server { |
通常程序库或者工具都有自己独特的User-Agent
头信息,此处就是根据UA特征来进行拦截。
限制请求指定后缀的文件
1 | server { |
如果你的服务器请求不提供这种后缀的请求最好将其屏蔽,一方面很多扫描程序会扫描这类后缀的文件造成服务器性能消耗,另一方面也可能认为的疏忽导致重要文件泄露造成安全问题。
限制请求隐藏文件
1 | server { |
通常以点开头的文件是隐藏文件,容易被忽视;如果你的服务器不提供某类特殊的请求服务,最好将其屏蔽。