有没有什么理由可以解释我是否应该通过GET或POST传递参数?

ope*_*rog 7 web-applications

在我的框架的设计过程中,我想到了将POST和GET参数合并为一个单独的$ parameters变量.

开发人员的优势:框架过滤所有参数值以再次保护XSS攻击(即有趣的孩子插入错误的javascript代码以将访问者重定向到垃圾邮件站点)以及其他类型的有用验证/过滤.

但像往常一样:分离POST和GET是否有任何真正的优势,而不是因为它们来自不同的来源它们只是不同?

我的意思是:那有关系吗?当POST参数与GET参数同名时,两者都真的被使用,它会在任何时候都是"好设计"吗?在我看来这很难看,但也许有人有一个很好的解释为什么我甚至不应该尝试合并POST和GET.

在任何情况下我都会认为POST会覆盖GET.我希望得到诚实的答案:-)

Dir*_*mar 5

POSTGET请求有不同的语义.维基百科上有简短描述.基本上是一个GET请求

不应该用于导致副作用的操作,例如使用它在Web应用程序中执行操作.其中一个原因是机器人或爬虫可以任意使用GET,这不应该考虑请求应该引起的副作用.

请注意,这不是HTTP协议强制执行的,它是您的应用程序必须确保的.因此,您应该在框架中分离不同的HTTP谓词.

举例说明如果GET请求不是简单地返回具有上述限制的资源,那么可能会发生这样的情况:Well-Intentioned Destruction.


Chr*_*aas 3

我认为每个人都没有抓住你的问题的要点(或者也许我只是误解了它。)你不是在问 GET/POST 之间的区别,你想知道这对于你所使用的框架来说是好还是坏。构建自动将这两个结果合并到一个安全变量中的方法。.Net 和 PHP 都这样做,所以我不明白为什么不这样做。

在 PHP 中,您可以对特定方法使用$_GETor或仅使用. 与 .Net 相同,并且与. 如果有人有理由只获取 POST/GET,那么变量仍然存在。$_POST$_REQUESTRequest.QueryStringRequest.FormRequest