关于网络应用程序的用户错误纠正的一般共识是什么?

时间:2010-10-27 19:11:57

标签: html

我正在建立一个RoR网站,今天我完成了分页。在向我的同事展示它时,他的第一个问题是“如果你将查询字符串设置为”?page = -1“会发生什么。它会因运行时异常(错误500)而死亡。他建议在本网站之前一定要修复它走近现场。

我碰巧不同意他(听我说)。现在,我已经在网络开发业务工作了四个月,所以我很可能是错的。但我认为这不是什么大问题。我认为,只要所述错误不构成安全风险,这样的事情就不应该成为优先事项。导致此错误的唯一方法是手动编辑查询字符串,以及垃圾中的垃圾。如果你足够聪明,知道你甚至可以编辑查询字符串,你应该足够聪明,不要给它一个负数。

对此类事情的一般共识是什么?你是否完全白痴证明该网站,所以无论查询字符串是什么,你永远不会产生错误?只要它按照预期的方式工作(并且不会暴露安全风险),你是否让事情滑落?在中间的某个地方?

编辑:不知怎的,我的问题并没有真正按照我的意图完成。我的问题的关键在于,在主动纠正事物与不做事之间划清界限。例如,如果get字符串中的输入无效,那么更好的做法是显示发布的回复中建议的有趣错误,或尝试弄清楚用户正在做什么,并且这样做。或者,作为一个更具体的例子:如果用户在get字符串中设置page = -1,最好是默认假设他们意味着page = 0,或者显示某种有品味的错误页面,说某些东西,如“指定的无效页面” “?

7 个答案:

答案 0 :(得分:8)

您应该检查查询字符串中的任何内容。如果您收到无效的页码,您应该有一条比错误500页更优雅的错误消息。也许是sorry, bad request. Try this: <possible suggestions>故意和故意在现场网站上留下一个易于访问的错误,这简直荒谬而且不专业。

你说你是网络应用程序的新手,但如果你以前的开发体验是“普通大众”(非开发人员,非技术人员)使用的其他GUI应用程序,那么堆栈跟踪是否可行当应用程序在他们周围分崩离析时,用户脸上会被扔进去?根据我的经验,这绝不是真的可以接受。

答案 1 :(得分:3)

你提出了一些好处,但是不正确的查询字符串可能有很多原因。例如,指向已删除的记录的链接。或者Google结果指向当前结果集中不存在的页面。

在这些情况下,您应该向用户显示比500错误更详细的内容。

答案 2 :(得分:2)

如果你有一个看起来不错的错误页面,并给出礼貌的信息,我会说没关系。虽然我可能会考虑用404来回应。垃圾进来最好不要产生错误

答案 3 :(得分:1)

我认为500错误页面对普通用户没有意义。至少告诉他你的网页出了什么问题,并通过提供返回你网站的链接引导他回到正轨。

有时我会将用户重定向到可能符合他想要的页面。因此,当查询低于零并且不允许这样做时,将用户重定向到?page = 0并可能在该页面顶部显示一条消息。我认为你应该更喜欢这种方法,因为在不使用模态窗口方面,这是一种更好的用户体验方法。

答案 4 :(得分:0)

我同意你的看法,错误信息是必要且有用的,但你应该尝试区分,例如:给出404用户请求不存在的页面。

答案 5 :(得分:0)

因项目而异。你期望有多少用户?如果每天访问量低于10K,那可能不会那么糟糕。你期望用户的百分比会遇到什么问题?我不希望那么多,但你会最清楚。

目标应该是运送产品并定期推出改进措施。希望产品整体健全。

关于解决方案,如果找不到页面,则应抛出4xx错误而不是5xx。 5xx错误通常需要更深入的外观,虽然在启动时直接编写气密应用程序很困难,但您应该尝试使用4xx和5xx错误的通用处理程序。

答案 6 :(得分:0)

在PCI游戏(信用卡验证/验证)中,规则是验证一切并且不允许白痴。所以答案取决于你的申请。