NGINX自带auth_basic在http/https请求中的区别
查看nginx官网的文档,nginx有一个快速给请求添加账号密码验证的方法,使用ngx_http_auth_basic_module模块。可以放在http,server,location,limit_except上下文中,配置也很简单。如下: location/{ auth_basic"closedsite"; auth_basic_user_fileconf/htpasswd; } 在使用中发现,请求的页面分别是http和https的话,nginx的处理是有区别的。对于https请求,如果账号密码输入不正确,则会一直让用户输入,直至输入正确或者是用户点击两次取消放弃请求。而如果是http...[>>…]
网站扫描出的漏洞解决:检测到目标Content-Security-Policy响应头缺失
漏洞1:检测到目标Content-Security-Policy响应头缺失ContentSecurityPolicy(CSP)通过告诉浏览器一系列规则,严格规定页面中哪些资源允许有哪些来源,不在指定范围内的统统拒绝,可以服务器添加Content-Security-Policy头信息来指定规则解决。upgrade-insecure-requests;connect-src*会使安全进行升级,即一个http页面中所有调用的静态资源会自动升级使用https调用。但这样也会产生很多问题,如果调用的资源实际并不支持https的话,这时如果不是线上环境可以不理会,线上环境使用https就没有这样的问题了。在测试环境...[>>…]
Nginx漏洞X-XSS-Protection/Content-Security-Policy响应头缺失等处理
使用一些漏洞扫描工具对服务器进行搜查,总得扫出一些漏洞,比如检测到目标X-...响应头缺失之类的,扫描后报了不少头漏洞问题,之前碰到过也进行了一些修复,主要是在nginx的配置中添加一些配置,见: http://04007.cn/article/1141.html这次又遇到一些,在这里补充一下这次碰到的漏洞问题及解决办法:1.检测到目标X-XSS-Protection响应头缺失HTTPX-XSS-Protection响应头是InternetExplorer,Chrome和Safari的一个特性,当检测到跨站脚本攻击(XSS)时,浏览器将停止加载页面。X-XSS-Protection响应头的缺失使得目...[>>…]
服务器Ubuntu18.06下安装nginx-1.23.3
因为很长时间以来,一直使用docker,所以很久没有在服务器下直接安装过nginx,但这次因为https的事情,需要直接在系统中安装nginx,找来最新版的nginx1.23.3。并且需要支持https,我这里使用的是服务器Ubuntu18.06,安装记录如下:Nginx模块依赖性在安装之前需要先装一些支持模块,先进行一些初始化模块安装如下:1.gzip模块需要zlib库.zlib库用于对HTTP包的内容做gzip格式的压缩,如果我们在nginx.conf中配置了gzipon,并指定对于某些类型(content-type)的HTTP响应使用gzip来进行压缩以减...[>>…]
使用最新的Certbot在Ubuntu服务器上进行https免费证书申请和安装
多年之前已使用过certbot进行证书操作:http://04007.cn/article/507.html,最近服务器进行了升级,所有的服务都使用了docker服务。但是certbot在docker下面操作遇到了问题。于是在裸机中搭建了一个nginx服务,在这个层面设置https443服务转发给后端的docker容器,因此今天重新来操作certbot,certbot这几年也进行了功能升级了,比之前稍微复杂了一点,比如增加了snap工具,以前是没有的。好吧,开始吧。 如果之前安装过certbot的工具之类的东西,需要先进行删除,Re...[>>…]
Nginx允许多个域名又不使用*号的跨域访问配置
当浏览器发起ajax请求到其他域名时,会出现跨域的问题,可以通过在nginx的配置文件上的增加配置Access-Control-Allow-Origin来解决,但此参数只允许配置单个域名或者*,当我们需要允许多个域名跨域访问时不好配置,这时可以使用nginx的map来实现,使用map的配置方法如下: #nginx.conf部分相关配置内容如下 map$http_origin$origin_allowed{ default0; https://domain1.com1; https://domain2.com1; } map$origin_allowed$origin{ default""; 1$http_origin; } server{ server_namesomehost...[>>…]
Nginx头信息漏洞扫描各种出的常用漏洞处理修复方法
因为原有一个业务服务使用Nginx做了一个代理,漏洞扫描后报了不少头信息问题,进行了修复并将方法进行记录如下,以下配置均在nginx.conf文件中添加。漏洞内容:点击劫持:缺少X-Frame-Options关于http头部X-Frame-Options缺失漏洞解决,X-Frame-Options有三个可选项:DENY#拒绝任何域加载SAMEORIGIN#允许同源域下加载(常用)ALLOW-FROM#可以定义允许frame加载的页面地址解决方法:add_headerX-Frame-OptionsSAMEORIGIN;漏洞内容:HTTPStrict-Transport-Security响应头缺失HTTPStrict-Transp...[>>…]
Nginx配置中添加支持WebSocket
Nginx自从1.3版就支持WebSocket,也可以为WebSocket应用程序做反向代理和负载均衡。Websocket使用ws或wss作为统一资源标志符,类似于HTTP或HTTPS,默认Websocket的ws协议使用80端口;运行在TLS之上时,其中wss表示在TLS之上的Websocket,相当于HTTPS。wss协议默认使用443端口。wss就是ws基于SSL的安全传输。 Nginx配置域名支持WSS只需要添加Upgrade两行配置即可,如下: location/uri{ proxy_passhttp://127.0.0.1; proxy_http_version1.1; proxy_set_headerUpgrade$...[>>…]
一些历史悠久的PHP开发技术记录
在整理一些文档,一些历史悠久的PHP开发技术记录,基本没有用了,放这里存着吧。1,location.assign('')也可网页跳转2,const只能在顶层代码中使用,包括在{}里不能使用。类中能使用3,常量也可以使用constant(常量名)来取值。4,使用未定义的常量,会把其名当做值来处理。5,php有8种类型,基本:intfloat,string,bool复合:array,object特殊null,resource6,$n=0123,0开头是8进制,0x是16进制,0b101010二进制。7,进制转换:dec,bin,oct,hex: 转换函数:decbin(),decoct,dechex还有反向转10进制,其它进制间不...[>>…]
nginx监听端口6000后的ERR_UNSAFE_PORT问题-nginx正常浏览器访问不了
在服务器上使用docker启动了nginx,由于端口限制,我使用了6000端口映射里面的80端口,启动成功后开始我使用microSoftEdga浏览器打开,发现竟然打不开,查看nginx的日志却发现请求根本没有发到nginx服务器上,但查看服务器上已经正常启动nginx并且在监听6000端口。挺奇怪的,之后我在服务器使用localhost以及IP加端口发现均能正常访问nginx。 问题出在哪呢?于是我在本地换了一个老版本的IE浏览器,这回发现竟然能成功,那到底是不是Edga太垃圾啊?好吧,网上对Edga确...[>>…]