Thread.Sleep на странице ошибок aspx. Зачем? - PullRequest
1 голос
/ 27 сентября 2010

В этой рекомендации , касающейся эксплойта для заполнения оракула, Microsoft опубликовала следующую рекомендуемую страницу ошибки:

<%@ Page Language="C#" AutoEventWireup="true" %>
<%@ Import Namespace="System.Security.Cryptography" %>
<%@ Import Namespace="System.Threading" %>

<script runat="server">
        void Page_Load() {
        byte[] delay = new byte[1];
        RandomNumberGenerator prng = new RNGCryptoServiceProvider();

        prng.GetBytes(delay);
        Thread.Sleep((int)delay[0]);

        IDisposable disposable = prng as IDisposable;
        if (disposable != null) { disposable.Dispose(); }
    }
</script>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <div>
        An error occurred while processing your request.
    </div>
</body>
</html>

Что такое Thread.Sleep для некоторого значения в диапазоне 0-255?Я не хочу, чтобы потоки моего сервера были связаны до четверти секунды.

1 Ответ

3 голосов
/ 27 сентября 2010

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

...