当您检测到您的获取请求被破坏或传递错误类型的数据时,您会怎么做?假设您有一个forum-page.php?forum = 3,其中列出了与论坛3相关的所有主题。
处理缺少“论坛”变量的好方法是什么?如果不是整数,你会得到一个字符串呢?你会如何回应这样一个错误的请求?
真的很想阅读你对此的看法。
答案 0 :(得分:1)
我通常返回400(错误请求),其状态描述解释了原因(例如,“论坛参数是必需的”)。不确定PHP是否允许这样做(ASP.NET确实如此),但随后您可以将400映射到自定义页面,该页面以对您的应用程序有意义的方式显示错误。
答案 1 :(得分:0)
这取决于每个页面及其GET请求。大多数页面(例如您用作示例的页面)可能会优雅地失败,但是其他需要丢失变量的页面可能需要抛出400(错误请求)或404(未找到页面)。 404实际上是非常必要的,因为搜索引擎可能会有一个错误的链接或通过互联网传递,所以你想要阻止这种行为。
我的观点是尝试以下方法:
最终,永远不要做的最重要的事情是尝试“猜测”错误/缺失的变量并为用户填充(在大多数情况下)。我遇到过很多网络应用程序,黑客滥用这种行为来欺骗webapp来模拟漏洞。