背景最近公司安全组给我们提了一个安全问题,说我们的静态资源图片没有做权限限制,拿到URL谁都可以访问,我们的静态资源都是由Nginx这个服务器直接做的映射,只有拿到对的URL确实可以随便访问,无奈,网上百度了下,问了下同事,那就做token验证吧,在有效期内验证通过才可以访问。 要做token验证,Nginx首先需要支持lua这个脚本语言。Lua是一个嵌入式脚本语言,Lua由标准C编写而成,代码简
转载 6月前
220阅读
1点赞
在进行WEB开发时, 必然会遇到向用户返回文件的场景(如图片, 文档等等), 当返回的文件较小时, 我们可以直接通过接口以数据流的形式向前台返回, 因为文件较小, 因此也不会太过于影响响应速度及服务器性能, 但是当文件较大时, 再使用接口中返回数据流的方式就显得极其不合适了. 此时, 就需要通过 nginx 读取文件资源向用户进行返回.  但是, 如果当用户进行文件请求时, 我们需要对用户进行身份
转载 2023-07-16 21:11:16
310阅读
背景的功能是防止盗链,别人一直访问你的连接,把你的服务器打爆,当失败时(md5值计算错误、时间戳过期),nginx直接返回403。 主要分为四种:时间戳远程Referer黑白名单IP黑白名单在使用上,一般推荐时间戳和远程,或者两者同时使用,剩下两项规避非常容易。时间戳介绍(LSS的方式)为确保视资源被非法获取,提供token认证和有效期限相结合的播放地址。开启时
nginx-http-flv-module使用完整版nginx-http-flv-module基于nginx实现的FLV直播模块。本文介绍怎么使用该模块进行直播和。简要说明:直播模块分为两块——推流和拉流。 nginx-http-flv-module就是开创直播间并处理这里流数据用的。一、安装前提是你得先安装好nginx,这里对nginx的安装不做概述。1.下载地址: https://gi
前言今天遇到一个有趣的小需求:通过URL访问并下载服务器上某个文件夹的文件,因此查找了资料进行了 Nginx 文件下载的配置,又因为不想完全对外开放,所以就加上了功能。这篇文章来记录一下相关配置步骤。参考目录 Nginx 官方文档 - Module ngx_http_autoindex_module 列出相关文件夹下的文件。 Nginx 官方文档 - Module ngx_http_auth_
一、nginx功能是什么?nginx 想做简单一个的用户过滤,但是并不想去对每个不同的用户群体进行单独配置,那么就可以设置一道防线,在nginx外面设置一个用户账号和密码,做一个简单的用户权限鉴别的功能,所有用户使用同一个的账号密码,做一个简单的安全过滤。二、nginx 安装操作流程1.首先数组机服务器里面需要安装httpd-tools 服务,如果是用docker容器安装的nginx
一)需求背景现在app客户端请求后台服务是非常常用的请求方式,在我们写开放api接口时如何保证数据的安全,我们先看看有哪些安全性的问题请求来源(身份)是否合法?请求参数被篡改?请求的唯一性(不可复制)二)为了保证数据在通信时的安全性,我们可以采用参数签名的方式来进行相关验证案例:我们通过给某 [移动端(app)] 写 [后台接口(api)] 的案例进行分析:    &
SSO 解决方案(+SESSION信息)项目地址在 https://github.com/1170159634/ssoSolution一、设计背景单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统。但是,
nginx 涉及到两个账户,一个是 nginx 的运行账户,一个是 php-fpm 的运行账户。如果访问的是一个静态文件,则只需要 nginx 的运行账户对文件具有读取权限;而如果访问的是一个 php 文件,则首先需要 nginx 的运行账户对文件有读取权限,读取到文件后发现是一个php 文件,则转发给 php-fpm,此时则需要 php-fpm 账户对文件具有读取权限。一。研究发现的结论1. l
转载 1月前
23阅读
目录Nginx漏洞复现①CVE-2013-4547(文件名逻辑漏洞)复现②Nginx解析漏洞nginx_parsing_vulnerability复现 Nginx漏洞复现Nginx与Apache一样,自身是不支持解析PHP语言的,只能通过加载PHP模块来解析PHP。 大致流程如下: 用户访问域名->域名进行DNS解析->请求到对应IP服务器和端口->nginx监听到对应端口的请
转载 23天前
0阅读
nginx 配置 location /live { auth_request /auth; proxy_pass http://live_address; } # authentication URL location = /auth { proxy_pass http://back_serv...
原创 2022-09-08 09:44:42
507阅读
这是一个可以让nginx的请求具备认证功能的模块。它可以做很多极具创造力的功能,这可能是我最推荐的一个模块。现在它已经是nginx内置的模块,只是默认是未开启的。曾经它也是第三方模块,其作者现在是nginx源码维护者之一。有着如此渊源和优秀使其被nginx收录,自然是情理之中。 在我们经历过的项目中,用户登陆认证是个非常常见的功能点。我们可能有很多的子项目,这些子项目有着共同的功能, 那
1、源头nginx代理从1.1.4版本开始支持http1.12、 HTTP1.1比 HTTP1.0的优化长连接(Persistent Connection) HTTP1.1支持长连接和请求的流水线处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启长连接keep-alive,一定程度上弥补了HTTP1.0每次请求都要创建连接的缺点。H
nginx强大的可扩展性和可定制性不仅保证自己的许多功能模块化,而且也催生许多优秀的第三方模块,本文要介绍的ngx_http_auth_request_module就是其中之一。这个模块可以实现基于服务器内部子请求的返回结果来控制用户。比如子请求返回4xx则提示说没有权限,如果是2xx则会返回资源给客户端,返回401错误则把子请求的头透传给客户端。这样通过服务器内部逻辑就可以控制,省去
GateWay作为网关路由是挡在了我们的系统最前边,进行动态路由配置和转发。那么我们就可以在网关层进行网关。https://cloud.spring.io/spring-cloud-gateway/2.2.x/reference/html/Gateway过滤器的介绍之前说过GateWay的组件中有Filter(过滤器)这一功能,就是web开发的三大组件(Servlet、Filter、Liste
1. Sa-Token 介绍Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关 等一系列权限相关问题。功能结构图 2. 登录认证对于一些登录之后才能访问的接口(例如:查询我的账号资料),我们通常的做法是增加一层接口校验:如果校验通过,则:正常返回数据。如果校验未通过,则:抛出异常,告知其需要先
自定义过滤器,重写isAccessAllowed自定义realm,重写doGetAuthorizationInfo我需要根据链接参数不同进行授权,就是通过这种方法的。public class CustomRealm extends AuthorizingRealm 下面是授权代码 /** * 获取权限 */ @Override protected AuthorizationInfo doGetAu
转载 2023-08-29 12:57:45
327阅读
我们在开发中需要用到对接口的登录,首先后台会根据几个参数组成字符串+secretKey,用AES(ECB)加密算法来生成秘钥ticket,第三方访问的时候,带在提供的系统认证地址后面(列如http(s)://test.com?ticket=秘钥)参数:这些参数包括时间戳,姓名,手机号,8位随机数,这些都是基本的,有的还需要根据实际业务场景添加一些信息,比如人员所在地,所在行政区划,年龄,职位信
转载 2023-09-05 20:27:38
139阅读
Java下常用的安全框架主要有Spring Security和shiro,都可提供非常强大的功能,但学习成本较高。在微服务下多多少少都会对服务有一定的入侵性。 为了降低依赖,减少入侵,让功能相对应用服务透明,我们采用网关拦截资源请求的方式进行。一、整体架构 用户模块位于API GateWay服务中,所有的API资源请求都需要从此通过。做身份认证,通过则缓存用户权限数据,
文章目录一、主要内容二、SpringSecurity加密解密1.pom依赖2.SpringSecurity配置类3.Controller4.Service5.Repository6.Model三、JWT1.JWT的组成头部载荷签名登录生成token以后每次访问的认证2.Java的JJWT认证实现测试类代码封装JwtUtil工具类3.修改登陆逻辑4.操作ControllerServiceServ
  • 1
  • 2
  • 3
  • 4
  • 5