我正在谷歌应用引擎(webapp框架)上开发一个项目。我需要你的人来评估我如何处理异常。
我正在处理4种类型的例外:
以下是我处理它们的方法:
我已经将webapp.requesthandler类子类化,并覆盖了handle_exceptions方法。每当发生异常时,我都会将用户带到友好的“我们很抱歉”页面,同时向管理员发送带有回溯的消息。
在客户端,我(将)使用js并在服务器端验证。 除了根据编程逻辑验证输入(检查:现金输入是浮动类型?)和业务规则(检查:用户是否有足够的点来采取该行动?),我在这里(作为具有非网络经验的编码器) ,我还要检查恶意意图。我应该采取什么措施来对付恶意行为?
我有一个处理错误网址的全能网址。也就是说,我将用户带到一个自定义的“页面不存在”页面。我想在这里我没有任何问题。
错误的查询字符串如果留给自己,可能会引发异常。如果ID不存在,则该方法返回None(异常即将发生)。如果参数不方便,代码会引发异常。在这里,我认为我必须提出404并将用户带到自定义“页面不存在”页面。我该怎么办?
你有什么看法?提前谢谢..
答案 0 :(得分:5)
你似乎已经很好地思考了事情。我要添加的唯一内容是您可能需要查看Bloog作为示例。 Bloog是一个用Python编写的用于App Engine的非常好的开源博客引擎。
此外,在第2点,请注意these types次Cross Scripting次攻击。
至于#4,请注意,404页面可以为您的设计添加一些color and creativity。
答案 1 :(得分:0)
广告。 #4:我通常将查询字符串视为非必要的。如果查询字符串出现任何问题,我只会提供裸资源页面(好像没有查询),可能会向用户提供一些信息,查询字符串有什么问题。
这会导致类似于#3的问题:用户是如何进入此错误查询的?我的应用程序在某处产生了错误的URL吗?或者是某些外部服务中的过时链接,还是已保存的书签? HTTP_REFERER
可能包含一些线索,但当然不具有权威性,因此我会记录有问题的查询(带有一些额外的HTTP标头)并尝试调查此案例。