本文目录:
- 1、Content-Security-Policy(CSP)漏洞,解决方案
- 2、负载均衡:F5,Haproxy,lvs, nginx
- 3、Nginx&Apache反向代理解决https站点无法展示http内容问题
- 4、windows下跑nginx如何有效扩大最大连接数问题
Content-Security-Policy(CSP)漏洞,解决方案
Content-Security-Policy内容安全策略 (CSP) 是一个额外的安全层,用于检测并削弱某些特定类型的攻击,包括跨站脚本 (XSS) 和数据注入攻击等。无论是数据盗取、网站内容污染还是散发恶意软件,这些攻击都是主要的手段。CSP 的实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,等同于提供白名单。它的实现和执行全部由浏览器完成,开发者只需提供配置。CSP 大大增强了网页的安全性。攻击者即使发现了漏洞,也没法注入脚本,除非还控制了一台列入了白名单的可信主机。
注意:CSP开启可能会导致js、css出现报错,所以需要正确的配置开始CSP策略。
启用 CSP方法:一种是通过 HTTP 头信息的Content-Security-Policy的字段,另一种是通过网页的meta标签。
第一种:修改 nginx 配置文件
在nginx.conf 配置文件中,增加如下配置内容:
第二种:通过网页的meta标签
该指令说明:允许自身css、js和高德地图api、地图数据。
CSP 指令说明:
default-src : 定义针对所有类型(js/image/css/font/ajax/iframe/多媒体等)资源的默认加载策略,如果某类型资源没有单独定义策略,就使用默认的。
script-src : 定义针对 JavaScript 的加载策略。
style-src : 定义针对样式的加载策略。
worker-src:worker脚本。
img-src : 定义针对图片的加载策略。
font-src : 定义针对字体的加载策略。
media-src : 定义针对多媒体的加载策略,例如:音频标签audio和视频标签video。
object-src : 定义针对插件的加载策略,例如:object、embed、applet。
child-src : 定义针对框架的加载策略,例如: frame,iframe。
connect-src : 定义针对 Ajax/WebSocket 等请求的加载策略。不允许的情况下,浏览器会模拟一个状态为400的响应。
sandbox : 定义针对 sandbox 的限制,相当于 iframe的sandbox属性。
report-uri : 告诉浏览器如果请求的资源不被策略允许时,往哪个地址提交日志信息。
form-action : 定义针对提交的 form 到特定来源的加载策略。
referrer : 定义针对 referrer 的加载策略。
reflected-xss : 定义针对 XSS 过滤器使用策略。
负载均衡:F5,Haproxy,lvs, nginx
阅读本文前,需熟悉OSI七层参考模型。
常见的负载均衡设备,有F5,Haproxy,lvs, nginx等。
F5是商用硬件负载均衡,性能很好,但是价格昂贵,除了负载均衡,还有应用交换、会话交换、状态监控等众多功能。
F5一般做四层负载均衡,但也支持七层负载均衡。
Haproxy(以下简称ha)是软件负载均衡,开源,一般做七层负载均衡,但也支持四层负载均衡。
Linux Virtual Server(以下简称lvs)是软件负载均衡,开源,二层或四层负载均衡,已集成到linux内核,自身有完备的热备方案(keepalived+lvs),稳定性极强。
nginx也是软件负载均衡,开源,通过反向代理实现负载均衡,是七层负载均衡,性能不如上面的几个。
tips1
有些公司,测试环境用ha/lvs/nginx,生产环境用F5。
tips2
nginx做web服务器时,一般做静态资源服务器和php的web服务器,所以很多公司,会采用F5+nginx或者ha+nginx的架构
tips3
微服务中的ribbon属于客户端负载均衡,上面的几种都是服务端负载均衡
二层负载均衡
在数据链路层通过修改mac地址实现,如lvs的DR模式(直接路由模式)
三层负载均衡
在网络层通过DNAT协议修改目标地址实现
四层负载均衡
用ip+端口实现请求转发
备注:tcp报文里并没有ip,但是四层负载均衡可以用ip+端口,是因为server可以拿到ip
七层负载均衡
通过重新发起http请求实现,即client把请求发给lb,lb把请求代发给server,再把server的响应返回给client,因此七层负载均衡也经常被称为代理,七层负载均衡设备也被称为代理设备。
七层负载均衡常用于内网与外网的通信,比如内网无法直接访问外网,需要通过代理设备代发http请求,这种情况下,代理设备需要配置双网卡,以同时与内外网络通信。
由于需要重发http请求,七层负载均衡性能较差,但是更智能和安全,因为应用层可以获取甚至修改请求的真实内容(即应用数据),比如cookie、url等,可以做一些智能的操作,比如根据cookie/url转发请求,也可以做一些安全操作,比如过滤特定报文、防止SYN Flood攻击等。
使用七层负载均衡时,服务的性能受限于代理设备的网卡带宽。
常见的负载均衡策略,有轮询、加权轮询、ip_hash、cookie、url_hash,根据服务器响应时间转发、根据最少连接转发等等。
备注:nginx可以安装第三方插件,使用第三方实现的策略
轮询:按服务器列表顺序转发请求,轮询是nginx默认的策略,本策略适合服务器配置相当、请求无状态(即不依赖session)的场景
加权轮询:如果不同服务器配置不同,可以为配置高的服务器增加权重
ip_hash:根据ip哈希结果转发,可以实现同一用户持续请求同一服务器(即会话保持),适合有状态(即依赖session)的场景,对png、jpg、js、css等静态资源的请求,不适合使用本策略
cookie:根据特定cookie转发请求,一般也是用于实现会话保持,比如为服务器A、B分别增加service-flag=a、service-flag=b的cookie,后续请求根据cookie转发
可以参考 haproxy实现会话保持
url_hash:根据url哈希结果转发,同一个接口始终请求同一台服务器,一般配合缓存使用,缓存接口返回结果
根据服务器响应时间转发:优先转发到响应时间较快的服务器
根据最少连接转发:优先转发到连接数较少的服务器
F5有一些特有的负载均衡策略:利用从应用程序和服务器收集到的各项性能指标,分析并转发
负载均衡有两个步骤:
1.根据什么算法选择真实服务端,即负载均衡策略,如轮询、加权轮询、ip_hash、cookie、url_hash等;
2.把请求转发到真实服务器,转发方式有二层到七层负载均衡
keepalived软件一开始是专为lvs设计的,后来加入了可以实现高可用的VRRP (Virtual Router Redundancy Protocol ,虚拟路由器冗余协议)功能,因此,keepalived还可以作为nginx、haproxy、mysql等服务的高可用解决方案。
以nginx为例,为了防止nginx本身由于宕机等原因导致网站不可用,一般会搭两套nginx反向代理,用keepalived提供一个VIP。
一般情况下,VIP只在nginx主节点上工作,如果nginx主节点不可用了,VIP会自动漂移到从节点,自动漂移的原理即VRRP协议。
VIP漂移到从节点后,如果主节点恢复正常了,VIP是否漂移回主节点,取决于当前模式是抢占模式还是非抢占模式。
下图是一张简单的架构图,解释如下:
以上观点纯属个人意见,如果错误,欢迎指出,有些地方写的很简单,是因为我也不懂~
Nginx&Apache反向代理解决https站点无法展示http内容问题
随着浏览器安全策略的愈发严格, https和http的混合站点, 会出现各种无法展示的问题,本文即提供一种解决此问题的思路,使用NginxApache反向代理来解决https站点无法展示http内容问题
首先我们要改变有问题的链接, 例如我们的站点是 , 页面需要展示 ,
我们可以把链接转换成如下形态:
这样我们就可以使用Nginx和Apache的rewrite功能,去拦截以一个域名为开始路径的链接, 然后获取对应文件内容,这样的好处是链接的后缀名可以保持不变,在safari和iphone上也能正常使用, 单纯的服务端获取转发, 音视频在苹果系统上是无法使用的
下面来说下具体反向代理的配置
需要在nginx配置文件的http模块添加如下配置:
需要开启如下模块:
以上就是使用NginxApache反向代理来解决https站点无法展示http内容问题的方法, 其余有什么更好的方法的话, 也可以留言或私信交流
windows下跑nginx如何有效扩大最大连接数问题
1、点击“开始”按钮,在弹出的快捷菜单选项中选择并单击“控制面板”。2、在打开的“控制面板”窗口找到“管理工具”,如下图。
3、打开“管理工具”,找到“本地安全策略”,如下图。
4、打开“本地安全设置”,在窗口左侧找到并点击“安全选项”,如下图。
5、在“本地安全设置”右侧找到“交互式登陆:可被缓冲保存的前次登陆个次数”,如下图。
6、双击“交互式登陆:可被缓冲保存的前次登陆个次数”选项,打开“交互式登陆:可被缓冲保存的前次登陆个次数”对话框。
7、“本地安全设置”选项卡下面的“缓存”次数修改为50,即最大可同时允许50个用户同时连接本机,如下图。
【nginx安全策略】的内容来源于互联网,如引用不当,请联系我们修改。
网友留言: