博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx服务器安全,要注意的地方
阅读量:6971 次
发布时间:2019-06-27

本文共 992 字,大约阅读时间需要 3 分钟。

hot3.png

Nginx是当今最流行的之一。它为世界上7%的web流量提供服务而且正在以惊人的速度增长。它是个让人惊奇的服务器,我愿意部署它。

下面是一个常见安全陷阱和解决方案的列表,它可以辅助来确保你的Nginx部署是安全的。

1. 在配置文件中小心使用"if"。它是重写模块的一部分,不应该在任何地方使用。

“”声明是重写模块评估指令强制性的部分。换个说法,Nginx的配置一般来说是声明式的。在有些情况下,由于用户的需求,他们试图在一些非重写指令内使用“if”,这导致我们现在遇到的情况。大多数情况下都能正常工作,但…看上面提到的。

看起来唯一正确的解决方案是在非重写的指令内完全禁用“if”。这将更改现有的许多配置,所以还没有完成。

2. 将每个~ .php$请求转递给PHP。 我们上周发布了这个流行指令的潜在安全漏洞介绍。即使文件名为hello.php.jpeg它也会匹配~ .php$这个正则而执行文件。

现在有两个解决上述问题的好方法。我觉得确保你不轻易执行任意代码的混合方法很有必要。

如果没找到文件时使用try_files和only(在所有的动态执行情况下都应该注意) 将它转递给运行PHP的FCGI进程。

确认php.ini文件中cgi.fix_pathinfo设置为0 (cgi.fix_pathinfo=0) 。这样确保PHP检查文件全名(当它在文件结尾没有发现.php它将忽略) 

修复正则表达式匹配不正确文件的问题。现在正则表达式认为任何文件都包含".php"。在站点后加“if”确保只有正确的文件才能运行。将/location ~ .php$和location ~ ..*/.*.php$都设置为return 403;

3. 禁用autoindex模块。这个可能在你使用的Nginx版本中已经更改了,如果没有的话只需在配置文件的location块中增加autoindex off;声明即可。

4. 禁用服务器上的ssi (服务器端引用)。这个可以通过在location块中添加ssi off; 。

5. 关闭服务器标记。如果开启的话(默认情况下)所有的错误页面都会显示服务器的版本和信息。将server_tokens off;声明添加到Nginx配置文件来解决这个问题。

转载于:https://my.oschina.net/u/1435993/blog/193233

你可能感兴趣的文章
Android Studio 3.0 如何生成 aar 并使用?
查看>>
Hbase/HbaseRest
查看>>
设置ToggleButton、Switch、CheckBox和RadioButton的显示效果
查看>>
Bootstrap 页面标题(Page Header)
查看>>
SVN版本还原
查看>>
使用SpringMVC创建支持向下兼容的版本化的API接口
查看>>
Chrome 显示 err_cert_authority_invalid 的处理方式
查看>>
简单理解倒排索引
查看>>
SpringAop在实际项目中的使用案例
查看>>
哪个对象才是锁?
查看>>
this关键字
查看>>
Python中字符串和datetime
查看>>
ng-Cordova插件之fileTransfer的使用
查看>>
基于struts1.框架的异常处理方案
查看>>
浅谈 Qt 内存管理
查看>>
【Qt】Qt之密码框不可选中、复制、粘贴、无右键菜单等【转】
查看>>
Flume中关于HDFS的sink配置
查看>>
Idea 社区版开发指南-1
查看>>
date命令转换unix时间戳
查看>>
/usr/lib目录属性更改引发的蝴蝶效应
查看>>