feat: サニタイザーを修正
This commit is contained in:
parent
79f561eb15
commit
bf22d90231
@ -4,11 +4,18 @@ import html
|
||||
|
||||
|
||||
def sanitize(cls):
|
||||
class SanitizedClass(cls):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
for prop_name, prop_value in self.__dict__.items():
|
||||
if isinstance(prop_value, str):
|
||||
sanitized_value = html.escape(prop_value, quote=True)
|
||||
setattr(self, prop_name, sanitized_value)
|
||||
return SanitizedClass
|
||||
original_init = cls.__init__
|
||||
|
||||
def new_init(self, *args, **kwargs):
|
||||
# オリジナルの __init__ メソッドを呼び出してインスタンスを初期化
|
||||
sanitized_kwargs = {**kwargs}
|
||||
for key, value in kwargs.items():
|
||||
if isinstance(value, str):
|
||||
# 文字列の場合はサニタイズ処理を行う(例:HTMLタグをエスケープ)
|
||||
sanitized_value = html.escape(value, quote=True)
|
||||
sanitized_kwargs[key] = sanitized_value
|
||||
original_init(self, *args, **sanitized_kwargs)
|
||||
|
||||
cls.__init__ = new_init
|
||||
|
||||
return cls
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user