Я только что заметил, что мой хост начал использовать Suhosin Hardening, я не совсем знаком с этим и имею серьезные проблемы с моим приложением, в основном на сессиях.
Сессия в настоящее время сохраняется в следующем формате:
_EzyqHpPJqmQbSpRmXAJTxuFq980aNQlc3XAiRkWxlZQ9B0fnV...
Я не против, но это также нарушает мое приложение, мне нужен способ расшифровки шифрования, потому что это не позволяет мне войти в мое приложение из-за этого.
У меня есть функция для десериализации данных сеанса, не знаю, где я поднял, но вот она:
public function unserialize_session_data($data)
{
$variables = array();
$a = preg_split( "/(\w+)\|/", $serialized_string, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE );
for( $i = 0; $i < count( $a ); $i = $i+2 )
{
$variables[$a[$i]] = unserialize( $a[$i+1] );
}
return($variables);
}
Это дает ошибки смещения с этой функцией, потому что данные сеанса не в том формате, который они ожидали, и поэтому мне было интересно, знает ли кто-нибудь о методе дешифрования / декодирования вышеупомянутых некрасивых данных suhosin, чтобы представить их в оригинале формат
- РЕДАКТИРОВАТЬ -
Публикация функции, которая использует вышеуказанную функцию несериализации
/***********************************************************************
# Get Session Data of a certain session id
# --------------------------------------
# This function will retrieve all session information related to a certain session id from
# the database, after that it unserializes the data and returns an array of data.
#
# @return array (Containing Session Data)
***********************************************************************/
public function get_session_data($session_id)
{
if (isset($session_id) && $session_id != "")
{
$sql = mysql_query("SELECT ses_value FROM sessions WHERE (ses_id = '$session_id');") or die ("MySQL Error : <b>" . mysql_error() . "</b><br />");
if (mysql_num_rows($sql) > 0)
{
$res = mysql_fetch_assoc($sql);
$res = $this->unserialize_session_data($res['ses_value']);
return $res;
}
}
}
Заранее спасибо!