archimag / cliki2

25 stars 13 forks source link

An error occured while processing your /site/view-revision request #4

Closed alder closed 12 years ago

alder commented 12 years ago

Steps to reproduce:

  1. Change id for view-revision URL. Example: http://74.207.228.11/site/view-revision?id=4+4546
  2. Got Internal Server Error.

Details: junk in string "4 4546"

P.S. Also this happens while processing /site/compare-revisions request. See - http://74.207.228.11/site/compare-revisions?old=4+4537&diff=44538

vsedach commented 12 years ago

This is the intended behavior.

alder commented 12 years ago

Much better behavior is 404 error. Not 500, not application code.

andy128k commented 12 years ago

Well designed 404 page have to be shown. Not 'server error'.

vsedach commented 12 years ago

There are 404 pages for articles and accounts. Revision IDs are permanent (except for "permanently deleted" pages ie spam) - if there is an error in viewing revisions or comparing them, then there is either an error in the URL or a serious server error. So 500 is the right behavior. All 500 pages return a stack trace to make error reporting easier.

andy128k commented 12 years ago

Ошибка валидации не должна приводить к 500 никогда. Почитай что ли книжку. 4xx -- ошибка клиента. 5xx -- ошибка сервера.

P.S. С таким подходом толку от этого сайта не будет.

alder commented 12 years ago

Еще добавлю - на живом сайте пользователь никогда не должен видеть никаких стектрейсов. Это потенциальная уязвимость. Максимум - сообщение "Упс! Что-то пошло не так, мы уже в курсе и работаем над этим" и все ошибки логировать.

vsedach commented 12 years ago

Опять повторяю: это не ошибка валидации. Это или ошибка в базе данных, или ошибка в генерации URL. Если кто-то хочет найти уязвимость, то может спокойно прочитать код. А стек трейс упрощает дебаггинг для меня и пользователей cliki. Это же сайт для программистов.

andy128k commented 12 years ago

Пробел в url был добавлен пользователем. Он набрал url по-памяти (например). http://cliki2-beta.cliki.net/site/view-revision?id=10000000 А это ошибка в базе или ещё где?