cookies - 停止使用 cookie 从 opencart 外部调用 opencart 1.5 控制器功能
问题描述
我正在使用 opencart 1.5 版本。我在控制器中有一个功能并且想在结帐时调用。这工作正常。但问题是像黑客这样的人在 opencart 之外调用这个函数,并在我的数据库中存储了一些不需要的假数据。所以我想停止从opencart外部调用该控制器功能。它应该只从 opencart 结帐中调用,如 ajax 调用。严禁使用 cookie 在外部(外部客户端)调用该函数。
解决方案
我猜你想防止对控制器方法的CSRF攻击。您可以尝试在 Controller 方法中进行Token 验证。将令牌设置为某个值,然后检查控制器是否是相同的令牌。如果匹配,则执行业务逻辑,否则什么也不做(或报告)。
在结帐模块上实现这一点。
$token= md5(uniqid());
$_SESSION['csrf_token']= $token;
现在匹配 SESSION 中的令牌和请求控制器方法中的一个:
$token = $this->session->data['csrf_token'];
unset($this->session->data['csrf_token']);
if ($token && $this->request->post['token'] == $token) {
// Apply your Business Logic
} else {
// Log a potential CSRF attack.
}
有更复杂的方法可以做到这一点,但我认为这应该会有所帮助。
推荐阅读
- python - 在 csv 中生成平均值和标准差
- heroku - 同时使用多个 Heroku 日志记录插件
- javascript - 错误:mobx-react-lite 需要 React with Hooks 支持
- python-3.x - 让excel文件在python上运行
- python - 使用 jinja2 模板提取嵌套字典
- c++ - 如何在 Windows CMD 终端中从 VSCode 运行程序?
- sql - 如果两列值相同则选择行,否则在 PostgreSQL 11.0 中选择另一个组合
- python - numpy 数组上的 .shape 是否检测嵌套数组或嵌套列表?
- wordpress - 需要的 wordpress 主题文件,以使其可安装给其他人
- python - 循环遍历字典以替换文本文件中的多个值