gpt4 book ai didi

mysql - 扩展 CodeIgniter Security.php 以启用日志记录

转载 作者:行者123 更新时间:2023-11-29 14:47:36 25 4
gpt4 key购买 nike

TLDR;我想在替换恶意数据时启用 xss_clean() 的数据库日志记录。

<小时/>

我想在 Security.php 中启用 xss_clean() 函数的数据库日志记录,基本上我想做的是知道我向 xss_clean() 提供的输入是否成功被识别为包含恶意数据是否被过滤掉。

所以基本上:

$str = '<script>alert();</script>';
$str = xss_clean($str);

对我来说理想的情况是:

  1. 清除字符串中的 XSS
  2. 返回干净的$str
  3. 将有关邪恶数据(以及最终登录用户)的信息输入数据库

据我在 Security.php 文件中看到,没有任何东西可以为我解决这个问题,或者可以通过钩子(Hook)等来做到这一点。当然,我可能是错误的。

由于没有记录 Security.php 中进行了多少次替换 - 我是否被迫扩展 Security.php,将当前代码复制粘贴到原始函数中并更改它以支持此功能?或者是否有一个对于 CodeIgniter future 更新(尤其是被篡改/扩展的文件)更干净、更安全的解决方案?

最佳答案

您需要扩展 Security 类,但如果您需要的只是输入/输出的日志,则绝对不需要复制和粘贴任何代码。遵循以下内容可以让您这样做:

Class My_Security extends CI_Security {

public function xss_clean($str, $is_image = FALSE) {
// Do whatever you need here with the input ... ($str, $is_image)

$str = parent::xss_clean($str, $is_image);

// Do whatever you need here with the output ... ($str)

return $str;
}

}

这样,您只需包装现有函数并扰乱输入/输出。您可以使用 PHP 函数 get_args 来提高向前兼容性。如果您担心底层方法的更改,则可以透明地传递参数对象。

关于mysql - 扩展 CodeIgniter Security.php 以启用日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6589498/

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