Является ли практика сокрытия / регистрации ошибок на сервере PHP хорошей практикой? - PullRequest
2 голосов
/ 25 марта 2020

Я пытаюсь развернуть сервер PHP с файлами php и базу данных, копию которой я получил. Тем не менее, есть много ошибок (в основном из переменных, используемых без объявления). Большинство мест, которые я посмотрел, включая людей, которые его создали, говорят, чтобы отключить отображение сообщений об ошибках и поместить их в файл журнала. Сайт работает нормально, когда я выключаю дисплей и скрываю их в журнале, но ошибки все еще есть.

Проблема в том, что МНОГО ошибок. Содержимое страницы утраивается в размере из-за огромного количества сообщений об ошибках, которые появляются, когда я не выключаю отображение ошибок внешнего интерфейса. Является ли просто сокрытие ошибок в журнале чем-то, что на самом деле является хорошей практикой на сервере не для разработки?

1 Ответ

2 голосов
/ 25 марта 2020

Ошибки должны быть скрыты и записываться в файл, так как они могут иногда содержать информацию, которую лучше не показывать потенциальным злоумышленникам, но вы должны их исправить.

Если вы забыли постоянно смотреть на это В файле я использовал cronjob для проверки файла ошибок 4 раза в день (в рабочее время) и, если были ошибки, отправляю их вам по электронной почте и очищаю файл журнала. Таким образом, вы, скорее всего, не пропустите ни одной ошибки, которая произошла.

Ваша цель состоит в том, чтобы в этом файле ошибок было 0 строк (ошибок и предупреждений), поэтому вы должны исправить их, чем раньше, тем лучше.

Одна проблема, с которой я столкнулся, состоит в том, что после регистрации ошибок одного веб-сайта, созданного другими, я начал получать сотни ошибок каждые несколько дней. Эти ошибки казались странными, поскольку все они были в один и тот же момент и в соответствии с ошибками, которые, казалось, возникали, когда пользователь не вошел в систему и должен был быть перенаправлен. Они имели деления на 0, неопределенные переменные ... В этом случае было перенаправление заголовка местоположения, но я все равно получил массу ошибок. Ошибки помогли мне обнаружить, что код все еще выполняется после перенаправления местоположения, поэтому мне нужно было только вызвать exit() после заголовка местоположения, чтобы предотвратить возникновение этих ошибок. Я бы не знал, что они там были, если бы я не регистрировал их, а сервер все равно выдавал бы огромное количество ошибок при выполнении этого кода.

...