php - 表单提交和 cURL 请求之间有什么区别?

标签 php jquery ajax curl

我正在尝试向 SalesForce.com 提交数据,但我想通过 AJAX 来完成。由于存在阻止 XSS 的限制,我让 jQuery 使用 AJAX 提交到我服务器上的 PHP 页面,然后让该页面简单地将它传递的表单数据转发到正确的 URL。

如果我在关闭 JS 的情况下提交表单,一切都会顺利进行。如果我打开它,Salesforce 会确认收到数据(在 Debug模式下),但它不会出现在我的队列中,也不会出现在 SF 中的任何地方。 SF 吐回它通过的所有字段,它吐回我表单中的每个字段,正确填写。

通过此方法(jQuery 的 $.ajax() 到 PHP cURL)提交内容与通过 native HTML 提交按钮提交内容有什么区别吗?可能导致 SF 注册数据但注册方式不同的原因是什么?我试过添加CURLOPT_HEADER/CURLOPT_HTTPHEADER信息

最佳答案

嗯,唯一不能伪造的不同之处是请求的 IP 地址。根据 salesforce 使用的保护有多严格,您可能无法从单独的 IP 地址进行欺骗(它会检测并拒绝请求)。

其他一切都应该是 100% 可伪造的(标题等)。我建议您获取 Firebug 或 TamperData,然后查看从您的浏览器正常发送到 salesforce 的原始 header 。然后从 PHP 复制那个确切的请求。如果您需要其他信息,您可以在 JS 中检测它并将其传递给 PHP(Cookie 信息、浏览器信息等)...

关于php - 表单提交和 cURL 请求之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4738380/

相关文章:

php - Laravel 共享主机 .htaccess

php - 在javascript中打印页面

jquery - 问题绑定(bind)函数

php - 使用 jquery 和 php 实时显示新闻

jquery - 谷歌应用引擎 : Browser to Server persistent connection

php - 我可以在 PHP 中混合使用 MySQL API 吗?

javascript - 如何将 php 变量作为参数传递给 JavaScript 函数

javascript - 在html5中,Javascript有没有办法让我只绘制可拖动的多边形?或者监听鼠标事件?

c# - 如何在 DataTables jQuery 插件中传递 AJAX 数据?

php - 执行带有参数的Python程序并将结果用作PHP变量? (CodeIgniter、TextBlob、Python 3.4、PHP 7)