gpt4 book ai didi

ios - NSURL POST 与 iOS 的 XSS 漏洞

转载 作者:行者123 更新时间:2023-11-29 02:29:44 27 4
gpt4 key购买 nike

公司扫码后,我的代码出现了问题。
报告显示,我尝试执行 Web 服务 POST 请求的代码存在 XSS 攻击漏洞。
我对安全问题不是很熟悉。
任何人都可以为我指出正确的方向来解决这个安全漏洞吗?

非常感谢。

我的 Web 服务调用是针对 CA 可信服务器的,因此我使用了:

- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {

if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) {
SecTrustResultType result;
SecTrustEvaluate(challenge.protectionSpace.serverTrust, & result);

if(result == kSecTrustResultProceed || result == kSecTrustResultUnspecified) {
[challenge.sender useCredential:[NSURLCredential credentialForTrust: challenge.protectionSpace.serverTrust] forAuthenticationChallenge: challenge];
return;

以保护连接。以下代码是我编写 URL 请求的位置。

再说一次,我对安全主题没有太多了解,
因此,我们将不胜感激!


- (BOOL)httpPostWithUrl:(NSString *)url headersAndValues:(NSDictionary *)headersAndValues delegate:(id)delegate
{
NSMutableString *bodyString = [[NSMutableString alloc] initWithString:@""];
for (NSString *key in [headersAndValues allKeys])
{
[bodyString appendString:[NSString stringWithFormat:@"%@=%@&", key, headersAndValues[key]]];
}

NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:20.0f];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
if (bodyString.length)
{
NSString *requestBody = [bodyString substringToIndex:bodyString.length-1];
NSData *requestData = [requestBody dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
[urlRequest setHTTPBody:requestData];

if (!_connectionRunning)
{
NSURLConnection *connection =[[NSURLConnection alloc] initWithRequest:request delegate:self];

return YES;
}
else
{
// error
}
}
}
return NO;

最佳答案

我认为这一行中的 xss:

[bodyString appendString:[NSString stringWithFormat:@"%@=%@&", key, headersAndValues[key]]];

您需要检查无效字符的 key 和 headersAndValues[key]。

NSString *checkedKey = [self alphanumericStringFromString:checkedKey];

+ (NSString *)alphanumericString { // NSString category
NSCharacterSet *charactersToRemove = [[NSCharacterSet alphanumericCharacterSet] invertedSet];
NSString *trimmedReplacement = [[self componentsSeparatedByCharactersInSet:charactersToRemove] componentsJoinedByString:@""];
return trimmedReplacement;
}

希望对你有帮助。

关于ios - NSURL POST 与 iOS 的 XSS 漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27053835/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com