问题描述
我将 checkmarx 用于代码中的安全漏洞。 (反应原生)。我使用 ios https://reactnative.dev/docs/linking 官方文档中的本指南在 react-native 中启用了深度链接。从文档中,我将此代码添加到 AppDelegate.m
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<UIApplicationopenURLOptionsKey,id> *)options { return [RCTLinkingManager application:application openURL:url options:options]; }
@H_404_5@但是,checkmarx 报告说我需要清理或验证 url 以防止 XSS 攻击,关于如何实现这一点的任何想法?
解决方法
要缓解代码中的 XSS 漏洞,您必须使用 stringByAddingPercentEncodingWithAllowedCharacters 方法对 url 参数进行 URL 编码:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options { NSString *urlEncoded = [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet]]; return [RCTLinkingManager application:application openURL:urlEncoded options:options]; }