ImageMagick конвертирует только первую страницу PDF

// Collect this information on every request
$aip = $_SERVER['REMOTE_ADDR'];
$bip = $_SERVER['HTTP_X_FORWARDED_FOR'];
$agent = $_SERVER['HTTP_USER_AGENT'];
session_start();

// Do this each time the user successfully logs in.
$_SESSION['ident'] = hash("sha256", $aip . $bip . $agent);

// Do this every time the client makes a request to the server, after authenticating
$ident = hash("sha256", $aip . $bip . $agent);
if ($ident != $_SESSION['ident'])
{
    end_session();
    header("Location: login.php");
    // add some fancy pants GET/POST var headers for login.php, that lets you
    // know in the login page to notify the user of why they're being challenged
    // for login again, etc.
}

Что это значит, это «контекстная» информация о сеансе пользователя, фрагменты информации, которые не должны меняться в течение одного сеанса. Пользователь не будет одновременно на компьютере в США и в Китае, верно? Поэтому, если IP-адрес внезапно изменяется в пределах одного сеанса, что сильно подразумевает попытку захвата сеанса, поэтому вы защищаете сеанс, завершая сеанс и заставляя пользователя повторно аутентифицироваться. Это препятствует попытке взлома, злоумышленник также вынужден войти в систему вместо того, чтобы получить доступ к сеансу. Известить пользователя о попытке (ajax it it bit) и vola, Слегка раздражать + информированный пользователь и их сеанс / информацию защищены.

Мы бросаем User Agent и X-FORWARDED-FOR, чтобы сделать наш лучший способ захватить уникальность сеанса для систем, находящихся за прокси-серверами / сетями. Вы можете использовать больше информации, чем тогда, не стесняйтесь быть творческими.

Это не 100%, но это довольно эффективно.

. Вы можете сделать больше, чтобы защитить сеансы , истекает их, когда пользователь покидает веб-сайт и возвращается, чтобы заставить их снова войти в систему. Вы можете обнаружить, что пользователь ушел и вернулся, захватив пустой HTTP_REFERER (домен был введен в строке URL) или проверьте, соответствует ли значение в HTTP_REFERER вашему домену или нет (пользователь нажал внешнюю / созданную ссылку, чтобы перейти к вашему сайт).

Завершить сеансы, не позволяйте им оставаться действительными на неопределенный срок.

Не полагайтесь на файлы cookie, их можно украсть, это один из векторов атаки для сеанса угон.

24
задан Swift 5 June 2013 в 16:20
поделиться