信用卡付款IFrame:不安全的JavaScript尝试启动框架

时间:2016-11-05 23:04:36

标签: php html security iframe cors

我正在尝试将第三方支付提供商的“插入式”支付表单集成到PHP页面中。我只需要插入他们的脚本标签和形式:

    <script src="https://test.paymentprovider.com/paymentform.js?id=<?php echo $checkoutId; ?>"></script>   
    <form action="http://my.success.url/result.php"></form>

在页面加载时,它会生成付款表单,并在其生成的iframe中加载其他安全验证表单。成功后,它意味着重定向到我提供的URL(在上面的form标记中)。在Firefox中,它运行得很好,但在Chrome中却没有,而是保留在初始页面上。当我使用Chrome Inspector查看控制台输出时,出现了一堆错误,其中两个错误是:

不安全的JavaScript尝试从包含网址“http://my.success.url/form.php”的网址启动包含网址“https://test.paymentprovider.com/v1/redirect.html?redirectUrl=http://my.success.url/result.php&res=36D0D8B607F562A5630AF&target=_top&method=GET”的框架的导航。尝试导航的框架以其顶层窗口为目标,但既不与目标相同,也不处理用户手势。

未捕获的SecurityError:无法在“位置”上设置“href”属性:当前窗口无权将目标框架导航为“http://my.success.url/result.php&resultpath=%2Fv1%2Fcheckouts%2F36D0D8B607F562A5630AF%2Fpayment”。

只有使用Chrome才能看到这种情况,有没有办法将Chrome的“白名单”test.paymentprovider.com?

编辑:抱歉,这实际上适用于PhoneGap应用,我知道它运行webkit。

1 个答案:

答案 0 :(得分:1)

此功能处于“开发中”(https://www.chromestatus.com/features/5851021045661696),您使用的是Chrome开发者版吗?目前,您可以避免用户版本的问题,但最终此功能会影响所有Chrome版本。

有一个功能请求线程要求一种方法来禁用此功能(https://code.google.com/p/google-apps-script-issues/issues/detail?id=5161)。该线程中有一些可能适合您的解决方案,特别是避免使用表单标记。