微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Objective C 中清理 NSURL

如何解决在 Objective C 中清理 NSURL

我将 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];
}

但是,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];
} 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。