Тело Запроса Журнала IIS / Данные POST

Стандартная стандартная беспроводная связь не безопасна. Период.

Когда Вы говорите нахождение этого 'пугающим', каково возможное разветвление, о котором Вы думаете? Вы выполняете банк? Если так, затем необходимо купить некоторую надлежащую беспроводную связь (см. сообщение Brad Ackerman)...

Это возьмет больше, чем любитель ПК для 'получения' пакетов и относительно опытного хакера для фактического соединения пакетов во что-то полезное. Короче говоря, независимо от того, что Вы читаете в медиа, опытный человек должен был бы очень упорно работать для получения данных в применимую форму и любую причину любое повреждение/использование данные против Вас. Не позволяйте паранойе добраться до Вас!!

Однако...

Дешевое решение состоит в том, чтобы поместить беспроводной маршрутизатор 'вне' Вашей сети - т.е. в части демилитаризованной зоны Вашего маршрутизатора (предполагающий, что это имеет один) - и затем VPN во внутреннюю часть Вашей сети - гарантирующий, что Вы/Windows шифруете трафик по VPN - не все делают. Это дало бы Вам безопасность - просто не в пути/духе, которым был предназначен WEP/WPA!!

Mike

33
задан 18 February 2015 в 13:55
6 ответов

IIS регистрирует только запись querystring и информацию заголовка без любых данных POST.

При использовании IIS7 Вы можете, включил Неудавшуюся Трассировку Запроса для кода состояния 200. Это запишет все данные, и можно выбрать который тип данных включать.

Или в IIS6 или в 7, можно использовать Application_BeginRequest в global.asax и создать собственное журналирование данных POST.

Или в IIS7 можно записать HTTP-модуль с собственным входом.

32
ответ дан 28 November 2019 в 19:55
  • 1
    +1 - Мне нравится Ваш ответ далеко, намного лучше, чем мое собственное. Я ясно должен читать на неудавшейся трассировке запроса, так как я, очевидно, haven' t использовал IIS7 так же, как я должен. –  Evan Anderson 4 December 2009 в 13:52

Попытайтесь включить следующее в своих настройках журнала IIS:

Метод (cs-метод)

Основа URI (cs-uri-stem)

Запрос URI (cs-uri-query)

-4
ответ дан 28 November 2019 в 19:55

В управляемом коде можно использовать Ответ. Метод AppendToLog. Этот метод добавит данные к cs-uri-stem полю - общая длина является до 4 100 (недокументированных) символов. При превышении того предела то значение, которое было бы зарегистрировано, заменяется "..."

Например, добавление чего-то вроде этого в Ваш файл Global.asax должно добиться цели (C#):

void Application_EndRequest(Object Sender, EventArgs e)
{
    if( "POST" == Request.HttpMethod )
    {
        byte[] bytes    = Request.BinaryRead(Request.TotalBytes);
        string s    = Encoding.UTF8.GetString(bytes);
        if (!String.IsNullOrEmpty(s))
        {
            int QueryStringLength = 0;
            if (0 < Request.QueryString.Count)
            {
                QueryStringLength = Request.ServerVariables["QUERY_STRING"].Length;
                Response.AppendToLog( "&" );
            }

            if (4100 > ( QueryStringLength + s.Length ) )
            {
                Response.AppendToLog(s);
            }
            else
            {
                // append only the first 4090 the limit is a total of 4100 char.
                Response.AppendToLog(s.Substring(0, ( 4090 - QueryStringLength )));
                // indicate buffer exceeded
                Response.AppendToLog("|||...|||");
                // TODO: if s.Length >; 4000 then log to separate file
            }
        }       
    }
}
 
8
ответ дан 28 November 2019 в 19:55

Хотя я понимаю, что это старый вопрос, я обнаружил, что этот код дал мне именно то, что мне было нужно, текстовый файл с полными заголовками запроса и ответом, поместите его в свой global.asax.cs:

protected void Application_BeginRequest(Object Sender, EventArgs e)
{
    string uniqueid = DateTime.Now.Ticks.ToString();
    string logfile = String.Format("C:\\path\\to\\folder\\requests\\{0}.txt", uniqueid);
    Request.SaveAs(logfile, true);
}

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

3
ответ дан 28 November 2019 в 19:55

Попробуйте это в вашем файле web.config, чтобы отследить все

<tracing>
  <traceFailedRequests>
    <remove path="*" />
    <add path="*">
      <traceAreas>
        <add provider="ASP" verbosity="Verbose" />
        <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
        <add provider="ISAPI Extension" verbosity="Verbose" />
        <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,FastCGI,WebSocket,Rewrite" verbosity="Verbose" />
      </traceAreas>
      <failureDefinitions timeTaken="00:00:00" statusCodes="200-999" />
    </add>
  </traceFailedRequests>
</tracing>
1
ответ дан 28 November 2019 в 19:55

Выглядит обнадеживающе, хотя я еще не пробовал:

https://www.codeproject.com/Tips/1213108/HttpModule-for-Logging-HTTP-POST-Data -in-IIS-Log

Чем он отличается от другого варианта, предлагаемого здесь, с кодом в global.asax.cs? Это будет работать только для запросов страниц ASP.NET, а не для других страниц, которые IIS может обрабатывать (php, cgi, jsp, cfml). Я поделился ссылкой на модуль, который можно включить в IIS для любого сайта (или на уровне сервера) для обработки любого типа запроса.

0
ответ дан 28 November 2019 в 19:55

Теги

Похожие вопросы