【问题标题】:Sanitize NSURL in Objective C在 Objective C 中清理 NSURL
【发布时间】:2021-04-11 07:08:57
【问题描述】:

我正在使用 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 攻击,关于如何实现这一点的任何想法?

【问题讨论】:

  • url 将是 nil 如果它无效。另见here
  • @Joshua Checkmarx 报告的确切漏洞是什么?
  • @RomanCanlas XSS 漏洞
  • @Joshua Asare Checkmarx 在 Objective C 下至少有 2 种类型的 XSS,你能具体说一下吗?

标签: objective-c react-native xss deep-linking nsurl


【解决方案1】:

要缓解代码中的 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];
} 

【讨论】:

    猜你喜欢
    • 2012-11-04
    • 2012-05-26
    • 2010-11-22
    • 1970-01-01
    • 2015-12-06
    • 2011-04-11
    • 1970-01-01
    • 2012-01-19
    • 2011-06-26
    相关资源
    最近更新 更多