Codeigniter:Paypal IPN 和 csrf_protection

2024-01-12

我正在与Codeigniter-paypal-ipn https://github.com/orderly/codeigniter-paypal-ipn并启用 csrf_protection。 这似乎阻止了从 Paypal 到我的 IPN 控制器的访问。如果我禁用 csrf_protection 它工作得很好,启用 csrf_protection 后,paypal IPN 服务会抛出 500 内部服务器错误。

有没有办法在不禁用 csrf_protection 的情况下解决这个问题? 如果没有,我可以禁用该控制器的 csrf_protection 吗?

Thanks.


我知道问题已经得到解答,但我以类似的方式做到了这一点,而没有破解 CI 核心。我将以下内容添加到我的 application/config/config.php 文件中:

$config['csrf_ignore'] = array('api');

该数组可以包含您喜欢的任何路径。上面的示例将适用于以“api”开头的任何路径。

然后,我添加了以下文件:应用程序/核心/MY_Input.php:

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Input extends CI_Input
{
    function _sanitize_globals()
    {   
        $ignore_csrf = config_item('csrf_ignore');

        if (is_array($ignore_csrf) && count($ignore_csrf))
        {
            global $URI;
            $haystack = $URI->uri_string();

            foreach($ignore_csrf as $needle)
            {
                if (strlen($haystack) >= strlen($needle) && substr($haystack, 0, strlen($needle)) == $needle)
                {
                    $this->_enable_csrf = FALSE;
                    break;
                }
            }           
        }

        parent::_sanitize_globals();
    }
}
/* EOF: MY_Input */
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Codeigniter:Paypal IPN 和 csrf_protection 的相关文章

  • 错误:您必须使用“set”方法来更新条目修复吗?

    我使用 codeigniter 作为我的 PHP 框架 当我将 from to post 提交到数据库时 我不断收到此错误 You must use the set method to update an entry 我不太确定这意味着什么
  • 如何避免 codeigniter 缓存

    我们在 codeigniter 框架中开发了一个网站 我们面临 codeigniter 缓存问题 问题是这样的 当用户登录时 我们的标题栏信息应该是Welcome Mr xxxxx 如果用户注销 我们的标题信息应该是 Welcome Gue
  • CodeIgniter - 自动加载

    我想知道 CodeIgniter 自动加载的最佳实践是什么 自动加载我的所有内容是不是不好的做法might是否曾经需要过 或者可以这样做吗 这会给应用程序带来更多负载吗 目前 我只是自动加载我将在整个应用程序中使用的库和助手 autoloa
  • Codeigniter 活动记录选择、左连接、计数

    我有一个显示数据库查询结果的表单 这些结果可以有许多其他资产与之相连 我想找到一种方法来显示每个元素有多少资产 例如 我的表是英格兰地区 另一个表是用户居住的地方 我当前有这个代码 this gt db gt select this gt
  • 无法加载请求的类:会话

    我的配置文件看起来像这样 gt config sess cookie name ci session config sess expiration 7200 config sess expire on close TRUE config s
  • Braintree PayPal 结帐组件抛出“e.client.getVersion 不是函数”

    我正在努力理解我在这里做错了什么 braintree client create authorization res clientToken this is the token I know it is correct err client
  • Paypal RESTful API:是否有一种方法可以像信用卡一样存储“Paypal”付款?

    我想存储 Paypal 交易以获得长期授权 超过 28 天 以便在物品发货时最终捕获 这样 就没有风险 因为当时还没有钱易手 通过保险库无限期地存储信用卡并在需要时收费 信用卡的处理很容易 但是有没有一种方法可以无限期地存储信用卡到时候要收
  • Codeigniter 中的 HTML 格式的电子邮件

    如何在 codeigniter 中发送格式化的电子邮件 我有这段代码 可以很好地发送电子邮件 但它没有按应有的方式格式化它 您可以看到显示收到电子邮件的图片 function email sender this gt load gt hel
  • 如何在MySQL中使用数字字符串的比较运算符?

    我有一个员工表 有类似领域的经验VARCHAR类型 此字段结合了用短划线 分隔的总年份和总月份 因此我必须按年份过滤具有 3 年以上经验的经验 我的表结构 所以现在我必须获得3年以上经验的id 我尝试如下 SELECT FROM emplo
  • 在 Codeigniter 中使用/嵌入 Ember js

    我即将开始开发一个 Web 应用程序 使用 Ember js 作为前端技术 使用 Codeigniter 作为后端 我遇到的问题是如何在 codeigniter 中嵌入或使用 ember js 可以通过 Web 服务从 codeignite
  • Codeigniter - 错误 - 没有要更新的数据

    我本来要更新数据库 但收到错误 没有要更新的数据 这是我的脚本 我创建了一个简单的切换来更新数据库 切换使用户处于活动状态 is active 1 或非活动状态 is active 0 我遇到的问题是 虽然对象从 1 更改为 0 或 0 更
  • Codeigniter 如何清理输入?

    我正在构建一个 Codeigniter 应用程序 并且正在尽最大努力防止 SQL 注入 我正在使用 Active Record 方法来构建我的所有查询 我知道 Active Record 会自动清理输入 但我想知道到底清理到什么程度 它只是
  • Codeigniter HMVC Ajax

    我的问题需要一些帮助 我有一个用户列表 我想在 CI HMVC 中使用 ajax 删除用户 onclick 删除按钮 这是我的列表视图的代码 function tip del click function var recId this da
  • 如何在codeigniter中引用数据库连接?

    如何在 CodeIgniter 数据库处理程序对象中手动调用 PHP 数据库函数 如何检索连接 dbc 或者调用类似的函数mysql real escape string dbc variable 您可以调用任何 mysql 本机函数并访问
  • PayPal Rest API for Payments 在沙箱中返回 NULL

    我有一个 PayPal 沙盒帐户 我可以在 PHP 上使用curl 通过 api 检索令牌 但是处理测试卡只会返回 null 有人看到代码有问题吗 这是 PayPal 沙盒的已知问题吗 下面代码片段中的客户端是伪造的 但是 如前所述 使用我
  • MPDF 未定义索引错误

    我正在使用 MPDF 库将 HTML 转换为 PDF 这是我的代码 HTML HTML CONTENT GOES HERE HTML STRING MPDF gt WriteHTML html Converting MPDF gt Outp
  • CodeIgniter:使用多维 POST 数据验证表单

    所以框架是CodeIgniter 2 0 2 我有一个表单 其中包含与数据库中的行相对应的字段组 字段名称的格式为 opt 0 foo opt 0 bar opt 1 foo opt 1 bar etc 索引 1 2等 并不对应于数据库中的
  • 更新查询增量字段加上 1 codeigniter 函数 [重复]

    这个问题在这里已经有答案了 我想在 codeigniter 项目中将字段值增加到当前值加 1 所以 我做了一个功能 但它不起作用 我的职能是 function increse field by 1 table name fieldToInc
  • 有关 payment_status 的帮助 PayPal 已退款 已撤销 部分退款 ION

    如果会员订阅和 或支付一次付款并且他们请求退款 撤销或部分退款 下面的脚本是否可以与通过 IPN 发送的 IPN 消息一起使用 if payment status Refunded payment status Reversed payme
  • 如何在 ASP.NET 中实现 PayPal Express Checkout? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我如何在 ASP NET 中创建快速

随机推荐