我正在建立一个RoR网站,今天我完成了分页.在向我的同事展示它时,他的第一个问题是“如果你将查询字符串设置为”?page = -1“会发生什么.它会因运行时异常(错误500)而死亡.他建议在本网站之前必须修复它去附近的任何地方.
我碰巧不同意他(听我说).现在,我已经在网络开发业务工作了四个月,所以我很可能是错的.但我认为这不是什么大问题.我认为,只要所述错误不构成安全风险,这样的事情就不应该成为优先事项.导致此错误的唯一方法是手动编辑查询字符串,以及垃圾中的垃圾.如果你足够聪明,你甚至可以编辑查询字符串,那么你应该足够聪明,不要给它一个负数.
对这样的事情有什么共识?你是否完全白痴证明该网站,所以无论查询字符串是什么,你永远不会产生错误?你是否只要按照预期的方式工作(并且不会暴露安全风险)?在中间的某个地方?
编辑:不知怎的,我的问题并没有真正完全按照我的意图完成.我的问题的关键在于,在主动纠正事物与不做事之间划清界限.例如,如果get字符串中的输入无效,那么更好的做法是显示发布的回复中建议的有味错误,或尝试弄清楚用户正在做什么,并且这样做.或者,作为一个更具体的例子:如果用户在get字符串中设置page = -1,那么最好是静默假设它们意味着page = 0,或者显示某种有品味的错误页面,说某些东西,如“指定的无效页面” “?