feat: サニタイザーを修正

This commit is contained in:
shimoda.m@nds-tyo.co.jp 2023-05-31 18:34:29 +09:00
parent 79f561eb15
commit bf22d90231

View File

@ -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