500 ошибка как вызвать

You may use the following function to send a status change:

function header_status($statusCode) {
    static $status_codes = null;

    if ($status_codes === null) {
        $status_codes = array (
            100 => 'Continue',
            101 => 'Switching Protocols',
            102 => 'Processing',
            200 => 'OK',
            201 => 'Created',
            202 => 'Accepted',
            203 => 'Non-Authoritative Information',
            204 => 'No Content',
            205 => 'Reset Content',
            206 => 'Partial Content',
            207 => 'Multi-Status',
            300 => 'Multiple Choices',
            301 => 'Moved Permanently',
            302 => 'Found',
            303 => 'See Other',
            304 => 'Not Modified',
            305 => 'Use Proxy',
            307 => 'Temporary Redirect',
            400 => 'Bad Request',
            401 => 'Unauthorized',
            402 => 'Payment Required',
            403 => 'Forbidden',
            404 => 'Not Found',
            405 => 'Method Not Allowed',
            406 => 'Not Acceptable',
            407 => 'Proxy Authentication Required',
            408 => 'Request Timeout',
            409 => 'Conflict',
            410 => 'Gone',
            411 => 'Length Required',
            412 => 'Precondition Failed',
            413 => 'Request Entity Too Large',
            414 => 'Request-URI Too Long',
            415 => 'Unsupported Media Type',
            416 => 'Requested Range Not Satisfiable',
            417 => 'Expectation Failed',
            422 => 'Unprocessable Entity',
            423 => 'Locked',
            424 => 'Failed Dependency',
            426 => 'Upgrade Required',
            500 => 'Internal Server Error',
            501 => 'Not Implemented',
            502 => 'Bad Gateway',
            503 => 'Service Unavailable',
            504 => 'Gateway Timeout',
            505 => 'HTTP Version Not Supported',
            506 => 'Variant Also Negotiates',
            507 => 'Insufficient Storage',
            509 => 'Bandwidth Limit Exceeded',
            510 => 'Not Extended'
        );
    }

    if ($status_codes[$statusCode] !== null) {
        $status_string = $statusCode . ' ' . $status_codes[$statusCode];
        header($_SERVER['SERVER_PROTOCOL'] . ' ' . $status_string, true, $statusCode);
    }
}

You may use it as such:

<?php
header_status(500);

if (that_happened) {
    die("that happened")
}

if (something_else_happened) {
    die("something else happened")
}

update_database();

header_status(200);

You may use the following function to send a status change:

function header_status($statusCode) {
    static $status_codes = null;

    if ($status_codes === null) {
        $status_codes = array (
            100 => 'Continue',
            101 => 'Switching Protocols',
            102 => 'Processing',
            200 => 'OK',
            201 => 'Created',
            202 => 'Accepted',
            203 => 'Non-Authoritative Information',
            204 => 'No Content',
            205 => 'Reset Content',
            206 => 'Partial Content',
            207 => 'Multi-Status',
            300 => 'Multiple Choices',
            301 => 'Moved Permanently',
            302 => 'Found',
            303 => 'See Other',
            304 => 'Not Modified',
            305 => 'Use Proxy',
            307 => 'Temporary Redirect',
            400 => 'Bad Request',
            401 => 'Unauthorized',
            402 => 'Payment Required',
            403 => 'Forbidden',
            404 => 'Not Found',
            405 => 'Method Not Allowed',
            406 => 'Not Acceptable',
            407 => 'Proxy Authentication Required',
            408 => 'Request Timeout',
            409 => 'Conflict',
            410 => 'Gone',
            411 => 'Length Required',
            412 => 'Precondition Failed',
            413 => 'Request Entity Too Large',
            414 => 'Request-URI Too Long',
            415 => 'Unsupported Media Type',
            416 => 'Requested Range Not Satisfiable',
            417 => 'Expectation Failed',
            422 => 'Unprocessable Entity',
            423 => 'Locked',
            424 => 'Failed Dependency',
            426 => 'Upgrade Required',
            500 => 'Internal Server Error',
            501 => 'Not Implemented',
            502 => 'Bad Gateway',
            503 => 'Service Unavailable',
            504 => 'Gateway Timeout',
            505 => 'HTTP Version Not Supported',
            506 => 'Variant Also Negotiates',
            507 => 'Insufficient Storage',
            509 => 'Bandwidth Limit Exceeded',
            510 => 'Not Extended'
        );
    }

    if ($status_codes[$statusCode] !== null) {
        $status_string = $statusCode . ' ' . $status_codes[$statusCode];
        header($_SERVER['SERVER_PROTOCOL'] . ' ' . $status_string, true, $statusCode);
    }
}

You may use it as such:

<?php
header_status(500);

if (that_happened) {
    die("that happened")
}

if (something_else_happened) {
    die("something else happened")
}

update_database();

header_status(200);

#1

IgorZip

    Новый участник

  • Members
  • Pip

  • 8 сообщений
  • ФИО:Igor Zip

Отправлено 28 января 2019 — 14:19

Есть поле для вставки ссылки на картинку. После вставки ссылки она парсится и подтягивается изображение в соседнее поле. Как мне можно вызвать 500 ошибку связаную с этим полем. Пробовал много-много символов вводить- ничего

  • 0

  • Наверх


#2

baruk

baruk

    Новый участник

  • Members
  • Pip

  • 11 сообщений

Отправлено 28 января 2019 — 14:42

Интересно, с чего вы решили, что это вообще возможно? Если сервис написан нормально, то не получится =)

А так вариантов масса, считай любая негативная проверка может дать подобное поведение.

Например, битая ссылка, совсем не ссылка, слишком большое изображение (допустим, файлик на пару гигов), нулевой размер, неправильное расширение (например, ссыль на jpeg, хотя файл на самом деле архив) и т.д.

Если есть доступ к коду, то можно посмотреть, какие проверки не предусмотрены в нем и при каких условиях выкинется необработанное исключение

  • 0

  • Наверх


#3

IgorZip

IgorZip

    Новый участник

  • Members
  • Pip

  • 8 сообщений
  • ФИО:Igor Zip

Отправлено 28 января 2019 — 14:57

Интересно, с чего вы решили, что это вообще возможно? Если сервис написан нормально, то не получится =)

А так вариантов масса, считай любая негативная проверка может дать подобное поведение.

Например, битая ссылка, совсем не ссылка, слишком большое изображение (допустим, файлик на пару гигов), нулевой размер, неправильное расширение (например, ссыль на jpeg, хотя файл на самом деле архив) и т.д.

Если есть доступ к коду, то можно посмотреть, какие проверки не предусмотрены в нем и при каких условиях выкинется необработанное исключение

Спасибо)

  • 0

  • Наверх


#4

Spock

Отправлено 28 января 2019 — 15:50

делается легко

устанавливаем перехватывающий прокси типа ZAP

и перехватываем ответ сервера и меняем код ответа на 500 и тело ответа меняем на что угодно, например «123»

  • 0

  • Наверх


#5

baruk

baruk

    Новый участник

  • Members
  • Pip

  • 11 сообщений

Отправлено 28 января 2019 — 19:07

перехватываем ответ сервера и меняем код ответа на 500 и тело ответа меняем на что угодно, например «123»

Не опасно ли так, не зная как реально возвращаются 500ые?  Подсунем стандартный ответ веб-сервера, а реально в ответ прилетит какой-нить json, со структурой, отличной от всего что видели.

И вот он, потенциально пропущенный дефект

  • 0

  • Наверх


#6

Spock

Отправлено 28 января 2019 — 19:17

Не опасно ли так, не зная как реально возвращаются 500ые?  Подсунем стандартный ответ веб-сервера, а реально в ответ прилетит какой-нить json, со структурой, отличной от всего что видели.

И вот он, потенциально пропущенный дефект

почитайте выше, я написал что в тело подставляем «что угодно», например «123» — вот вам и «прилетает» структура которую мы не ожидаем

  • 0

  • Наверх


#7

baruk

baruk

    Новый участник

  • Members
  • Pip

  • 11 сообщений

Отправлено 28 января 2019 — 19:40

почитайте выше, я написал что в тело подставляем «что угодно», например «123» — вот вам и «прилетает» структура которую мы не ожидаем

Именно. А зачем нам такая структура? Ну начнут разрабы ловить ошибки при попадании «чего угодно», а прилетит реальная 500 и тут все упадет.

Я к тому, что при подмене данных нужно использовать правильную структуру ответа, иначе, как мне кажется, бессмысленно.

  • 0

  • Наверх


#8

Spock

Отправлено 28 января 2019 — 19:59

Именно. А зачем нам такая структура? Ну начнут разрабы ловить ошибки при попадании «чего угодно», а прилетит реальная 500 и тут все упадет.

Я к тому, что при подмене данных нужно использовать правильную структуру ответа, иначе, как мне кажется, бессмысленно.

смотрите как подменять надо чтобы «все ловилось»:

кейс 1: подмена ответа на «ожидаемую» ошибку

подменяем хттп-код на например 403 либо что у вас там считается ошибкой, тело ответа подменяем на ошибку в вашем формате, например джейсон, с текстом например «баланс ниже нуля». смотрим система распарсила ошибку и отобразила в интерфейсе текст «баланс ниже нуля»

кейс 2: подмена ответа на «неожидаемую» ошибку

подменяем хтпп-код на например 500 и тело на что-то не по вашей структуре например «123». Смотрим что обработчик отобразил какую-то общую ошибку типа «Something went wrong»

  • 0

  • Наверх


#9

baruk

baruk

    Новый участник

  • Members
  • Pip

  • 11 сообщений

Отправлено 28 января 2019 — 20:13

В таком виде согласен с вами.

  • 0

  • Наверх


#10

77juli77

77juli77

    Новый участник

  • Members
  • Pip

  • 1 сообщений

Отправлено 21 мая 2021 — 15:20

Здравствуйте — можно но ли получить ошибку 500 или другую ошибку ( симитировать) — банк требует скриншот, а я его не сделала — не могла зайти вовремя списали 60 000 которые копились год. Буду признательна и готова заплатить если можно что то сделать — спасибо

  • 0

  • Наверх


#11

Snap

Snap

  • ФИО:Роман
  • Город:Москва

Отправлено 30 августа 2021 — 08:04

Здравствуйте — можно но ли получить ошибку 500 или другую ошибку ( симитировать) — банк требует скриншот, а я его не сделала — не могла зайти вовремя списали 60 000 которые копились год. Буду признательна и готова заплатить если можно что то сделать — спасибо

Нет. Если банк честный и у них есть лог ошибок (например, на моем проекте есть), то если вы назовете им свой IP (правда IP у вас уже мог измениться) и точное время, они смогут посмотреть, была ли ошибка.

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

  • 0

  • Наверх


I want to simulate this error so I can check the custom HTTP 500 page is displayed, not the default one.

asked Apr 5, 2013 at 11:31

tommywang's user avatar

1

Throw a .htaccess with some weird symbols in your document root and call the page

You can break one of the RewriteRules of WordPress if you already have a .htaccess
Just make sure you know what you broke haha

answered Apr 5, 2013 at 11:35

Torben's user avatar

TorbenTorben

19311 bronze badges

If you deliberately break some code on the site it should display the 500 page.

answered Apr 5, 2013 at 11:32

TangoKilo's user avatar

TangoKiloTangoKilo

1,7853 gold badges25 silver badges44 bronze badges

Hmm you can’t have custom 500 error page on wordpress as far as i know.

But give this a try on your .htaccess and let know ;)

ErrorDocument 500 /500.shtml

answered Apr 5, 2013 at 11:35

Shankar Narayana Damodaran's user avatar

Я хочу симулировать эту ошибку, поэтому я могу проверить, что отображается общая страница ошибки, а не HTTP 500, в свете недавней уязвимости безопасности.

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

4b9b3361

Ответ 1

throw new Exception();

Это создаст HTTP 500

Ответ 2

Я думаю, вы можете сделать это, переопределив инициализацию страницы и добавив код состояния 500 в ответ следующим образом:

protected void Page_Init(object sender, EventArgs e)
{
    Response.Clear();
    Response.StatusCode = 500;
    Response.End(); 
}

Наслаждайтесь!

Ответ 3

вы можете разбить файл web.config. Поместите неверный тег для тестов

Ответ 4

Здесь можно сделать это без изменения вашего сайта:

  • В своем веб-браузере откройте страницу на своем сайте с обратной формой.
  • Нажмите F12, чтобы открыть инструменты разработчика.
  • На вкладке HTML найдите __VIEWSTATE и каким-либо образом измените значение.
  • Отправить в форму

Это приведет к ошибке «Проверка MAC-адреса в представлении» с ошибкой «ASP.Net Exception», которая возвращает код ответа HTTP с внутренней внутренней ошибкой сервера.

Разрыв web.config с неверным тегом также работает, но он побеждает цель, если вы пытаетесь проверить некоторые параметры в вашем web.config(например, Failed Request Tracing).

Ответ 5

Это генерирует пользовательский код ошибки HTTP в классическом asp.

<%@language=Jscript%>

<%
    Response.Status = "996 TerraNova GeoWeb Internal Server Error";
    Response.End;
%>

Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • 500 ошибка сервера beget
  • 5001 ошибка мерседес 204
  • 500 ошибка примеры
  • 5001 код ошибки стандофф
  • 50003 ошибка зум

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии