Intereting Posts
MySQL Есть ли ограничение InnerJoin? Начиная с laravel на ubuntu ftp_ssl_connect с неявным ftp над tls Сортировка массива дат с использованием функций usort () и sort () по метке времени, преобразованной в mktime () Как обновить строку с несколькими изображениями, которые имеют только одно изображение, вставленное первоначально в php PHP: переместить с переименованием не удается, но комбинация операций копирования и отмены сделать строку из N символов Sqlite3, SQLSTATE : общая ошибка: база данных 5 заблокирована Как изменить последовательность «соединений» в CakePHP? Почему некоторые операции с потоковыми массивами в PHP, похоже, не работают? Способ использования Config :: set () дважды в функции Преобразование специальных символов с помощью htmlspecialchars и htmlentities бесконечная прокрутка (wordpress) Регулярное выражение PHP для удаления тегов в документе HTML Получить IV из заголовка RNCryptor AES 256 в PHP

не использовать сеанс в php

Я немного прочитал, как защитить сеанс, и я решил сделать это, чтобы сохранить session_id в базе данных, а затем сохранить его в переменной сеанса после того, как он был зашифрован.

Вот класс, который я использовал для шифрования (он был написан автором книг Ориэля):

Зашифрованный класс с помощью session_set_save_handler

Я применяю его так:

ini_set('session.use_only_cookies',true); //calls the session class. require_once(dirname(__file__)."/../../Administrator/secure_session.php"); session_start(); if( !isset($_SESSION['mod']) ) { Moderator::insert_moderator($name,session_id()); $_SESSION['mod']= session_id(); $_SESSION['time']=time(); echo "<br/>Moderator session: ".$_SESSION['mod']; } 

Это исключение:

Неустранимая ошибка: исключить исключение «Исключение» с сообщением «Я не могу создать безопасный псевдослучайный ключ. Пожалуйста, используйте PHP> = 5.3 или Mcrypt extension 'в C: \ xampp \ htdocs \ PolitForum \ Administrator \ secure_session.php: 74 Трассировка стека: # 0 C: \ xampp \ htdocs \ Политический форум \ Администратор \ secure_session.php (107): SecureSession -> _ randomKey (32) # 1 [внутренняя функция]: SecureSession-> open ('C: \ xampp \ htdocs …', 'PHPSESSID') # 2 C: \ xampp \ htdocs \ PoliticalForum \ StoredProcedure \ User \ headerSite.php (43): session_start () # 3 C: \ xampp \ htdocs \ Политический форум \ mainHome.php (14): include_once ('C: \ xampp \ htdocs …') # 4 {main}, брошенный в C : \ xampp \ htdocs \ Политический форум \ Администратор \ secure_session.php в строке 74

Что я делаю неправильно, как я могу это исправить, потому что я не понимаю много шифрования!

Исключение составляет то, что вы, вероятно, используете PHP <5.3, или вы не указали расширение mcrypt в php.ini

В вашем журнале ошибок говорится строка 74 класса, если вы посмотрите на нее:

 (71) if (defined(MCRYPT_DEV_URANDOM)) { (72) return mcrypt_create_iv($length, MCRYPT_DEV_URANDOM); (73) } else { (74) throw new Exception("I cannot generate a secure pseudo-random key. Please use PHP >= 5.3 or Mcrypt extension"); (75) } 

это означает, что MCRYPT_DEV_URANDOM не определен, и если вы посмотрите в php.net, вы увидите, что он был введен в PHP> = 5.3 на платформах Widnows


Чтобы обновить версию PHP, загрузите последнюю стабильную версию здесь или здесь (Windows)

Если вы получите это сообщение, у вас есть PHP 5.3 или новее. Вы не включили расширение OpenSSL в файле php.ini .

Вам нужно сделать следующую строку в файле php.ini :

 extension=php_openssl.dll 

Я предполагаю, что вы используете окна, другие разумно меняют расширение