【问题标题】:Alternative to GET and POST methods to send/recieve data from a form从表单发送/接收数据的 GET 和 POST 方法的替代方法
【发布时间】:2011-06-24 05:58:14
【问题描述】:

我正在尝试用 PHP 构建一个 Web 应用程序。

但我不想使用 GET 和 POST 方法,因为用户只需查看 html 端就知道我们发送数据的内容和方式。当然,我们可以随时清理数据,但我仍然希望自己保留数据格式。

上面有没有替代方案...

可以对url做点什么,不泄露数据的类型和格式。我在这方面看到了一些与 mod rewrite 相关的东西。

如果我在正确的轨道上,请建议并告诉我。

【问题讨论】:

  • 这些是主要方法,其他方法只是相同方法的变体
  • 你需要阅读关于 HTTP 请求 GET / POST 的 HTTP 1.1 规范,我认为你缺乏一些基础知识。
  • 你在正确的轨道上:)
  • 我对@9​​87654321@一无所知。

标签: php web-applications mod-rewrite http-post


【解决方案1】:

你没有走在正确的轨道上。

您无法真正隐藏数据的发送方式,因为浏览器必须以某种方式知道,如果它知道,可能的入侵者就会知道。像往常一样使用 GET 和 POST,过滤和清理用户数据。这是你能做的最好的。

您甚至可以更改 URL,但浏览器仍然拥有它,可能的入侵者也是如此。

如果您想要更安全的东西,HTTPS 似乎是一个不错的选择。

【讨论】:

    【解决方案2】:

    与其他人所说的相反,你可以在某些方面做你喜欢做的事,尽管它不会实现你的目标:

    PUT / SEARCH / DELETE 都是 RESTful 接口的概念

    如果您想发挥创造力...创建一个名为HIDEFROMUSER 的新名称,并配置您的网络服务器和PHP 脚本以在标头中接受它。请注意,大多数(如果不是所有)浏览器都不会支持此功能,但 jquery ajax 调用应该...

     header('Allow: GET, HEAD, POST, DELETE, HIDEFROMUSER', true, 405);
    
     $accept = $_SERVER['HTTP_ACCEPT'];
     // does $accept equal one of your allowed methods?
    

    终于$yourHiddenWayOfDoingThings = fopen('php://input', 'r');

    人们仍然会看到你在做什么如果它有效,你不会达到你的期望......

    【讨论】:

      【解决方案3】:

      GET 和 POST 是您唯一的选择。此外,您的脚本不应依赖于用户对其安全工作方式的无知,这就像因为人们通常不会尝试随机门来查看它们是否已解锁而让您的房子没有上锁。默默无闻的安全注定要失败。

      【讨论】:

      • +1 默默无闻的安全性肯定不是办法(或者肯定不是一开始的事情,有人说它可以作为附加层添加 - 有人说它毫无价值)
      • 就像我说的,我的比喻是,这就像因为大多数人不会四处乱试门而让你的门没上锁。
      • 我同意为了安全起见需要对数据进行清理,我只是想在前端也隐藏数据。
      【解决方案4】:

      我能提供的唯一建议是隐藏 HTML,例如,如果您使用 flash/silverlight 或 java,用户甚至无法访问表单的字段名称、处理页面的页面目标等。如果有必要进行某种形式的数据操作,因此您发送 data= 和另一端,撤消操作并将其解析出来,但是当然,如​​果有人窥探网络数据并花费足够的时间锻炼,任何可能无法解析的东西都可能受到攻击你操纵它的方式。

      【讨论】:

      • 你提供的方法只能防止那些无论如何都无法对这些数据做任何事情的人(如果他们能得到它)。
      • Flash 和 java 无法解决问题,因为存在数据包嗅探器和反编译器,它们会为可访问性引入障碍。
      • @GordonM 正是我想说的:)。
      • GordonM,我确实说过,任何窥探网络数据的人都会看到它。隐藏这一点没有很多工作要做。
      猜你喜欢
      • 2021-05-21
      • 1970-01-01
      • 2019-01-23
      • 2012-12-02
      • 2018-07-07
      • 1970-01-01
      • 1970-01-01
      • 2011-10-09
      • 1970-01-01
      相关资源
      最近更新 更多