返回提交历史
Modified
g4f/api/__init__.py
+6
-5
XFEstudio/gpt4free
fix(security): sanitize exception exposure in quota handler to resolve alert #71
565c37c7
代码差异
1 个文件
+6
-5
@@ -522,7 +522,7 @@ class ErrorResponse(Response):
522
522
elif isinstance(exception, MissingAuthError):
523
523
safe_message = "MissingAuthError: Authentication required"
524
524
else:
525
safe_message = f"{exception.__class__.__name__}: Request failed"
525
safe_message = "Request execution failed"
526
526
return cls(format_exception(safe_message, config), status_code)
527
527
528
528
@classmethod
@@ -786,13 +786,14 @@ class Api:
786
786
else:
787
787
usage = await provider.get_quota()
788
788
return usage
789
except MissingAuthError as e:
789
except MissingAuthError:
790
790
return ErrorResponse.from_message(
791
f"{type(e).__name__}: {e}", HTTP_401_UNAUTHORIZED
791
"MissingAuthError: Authentication required", HTTP_401_UNAUTHORIZED
792
792
)
793
793
except Exception as e:
794
logger.exception(e)
794
795
return ErrorResponse.from_message(
795
f"{type(e).__name__}: {e}", HTTP_500_INTERNAL_SERVER_ERROR
796
"Failed to retrieve provider quota", HTTP_500_INTERNAL_SERVER_ERROR
796
797
)
797
798
798
799
@self.app.get(
@@ -2376,7 +2377,7 @@ def format_exception(
2376
2377
elif isinstance(e, MissingAuthError):
2377
2378
message = "MissingAuthError: Authentication required"
2378
2379
else:
2379
message = f"{e.__class__.__name__}: Request failed"
2380
message = "Request execution failed"
2380
2381
return json.dumps(
2381
2382
{
2382
2383
"error": {"message": message},