如何配置安全规则
安全规则概述#
安全规则用于约束外部请求对应用的访问,确保只有符合条件的请求才能访问应用的资源。每个应用的拥有者或管理员可以在应用的控制台进行配置:
安全规则主要由三部分构成:
- 路径模式:根据 URL 对请求进行分组匹配,只有满足该模式的请求才会应用这条规则(Default 可以匹配任意 URL)。
- 响应头策略:根据安全需要统一为响应请求添加自定义首部。
- 访问策略:规定谁可以访问该应用。
另外多条安全规则将按照从上到下的顺序对请求进行匹配,如果命中了某条规则,则跳过后续匹配流程。
访问策略#
访问策略可以根据用户是否登录以及用户的角色来控制谁能够访问该应用,具体的选项如下图所示(如果不理解其中某些名词,可以参考用户和通行证):
响应头策略#
响应头策略用于为响应请求添加必要的安全头部,以控制浏览器的行为,确保应用符合安全要求。
CORS 配置#
CORS 配置允许控制哪些域可以访问应用资源,防止恶意跨域请求。主要配置项包括:
- Origin:指定允许哪些来源的域名进行跨域请求。例如,可以指定允许
https://example.com
进行跨域访问。 - Methods:允许的 HTTP 方法,如
GET
、POST
、PUT
、DELETE
等。 - Allowed Headers:允许的请求头列表,指定哪些头部可以在跨域请求中发送。
- Exposed Headers:允许客户端访问的响应头。
- Max Age:指定预检请求的有效期,单位为秒,表示在此时间内浏览器不需要再发送预检请求。
- Options Success Status:指定预检请求的成功状态码,默认为
204
。 - Preflight Continue:是否允许继续进行预检请求过程。
- Credentials:是否允许跨域请求携带凭证(如 cookies)。
安全头部配置#
安全头部配置用于增强 HTTP 响应的安全性,防止一些常见的攻击方式。主要配置项包括:
- Content-Security-Policy (CSP):用于防止跨站脚本攻击(XSS)和其他代码注入攻击,限制资源的加载源(具体选项可以参考 CSP Reference)。
- Referrer-Policy:控制
Referer
头的发送方式,防止泄露敏感信(具体选项可以参考 Referrer Policy Reference)。 - X-Frame-Options:防止网页被嵌入到 iframe 中,避免点击劫持攻击。常见值包括
DENY
和SAMEORIGIN
。 - Disable X-Powered-By:防止泄露服务器信息,例如
X-Powered-By: Express
,该信息可能被攻击者利用。 - X-XSS-Protection:防止跨站脚本(XSS)攻击。常见值为
1; mode=block
,表示启用 XSS 保护并阻止页面渲染。
FAQ#
遇到请求被 CORS 拦截怎么办?#
如果遇到 CORS 问题,一般是应用对跨域请求做了限制。需要在应用后台-响应头策略中修改 CORS 配置,添加白名单或者设置为 *
:
为什么无法预览 NFT?#
比如 Space 卡片的 NFT 显示空白:
原因是 Stageing DID Spaces 的默认规则中只允许通过 /app/resolve/display
路径来预览 NFT,而 Space 卡片是通过 /app/api/space/nft/display
来预览 NFT:
因此针对 Space 卡片预览 NFT 的问题,需要为 /app/api/space/nft/display
路径添加规则:
之后 Space 卡片就能正常显示 NFT 了: