Проверка за създадена сесия, но в различна директория

C++ JAVA
Правила на форума
Моля, маркирайте отговора на потребитeля, който най-много ви е помогнал за решаването на проблема/въпроса Ви!
Повече за системата за оценяване може да прочетете тук: viewtopic.php?f=28&t=130265
Аватар

Topic author
Ticketa
Редовен
Редовен
Reactions: 4
Мнения: 647
Регистриран на: Пон Фев 27, 2012 1:54 pm
Support: 24
9
Местоположение: in /root
Обратна връзка:

Проверка за създадена сесия, но в различна директория

Мнение от Ticketa »

Привет,
Опитвам се да направя проверка дали имам създадена сесия - проблема е че двата кода работят на два различни потребителя и на две различни директории

/home/user/cms - url address: ip/cms

/usr/share/pma - url address: ip/phpmyadmin

Имам пълен достъп. Идеята ми е ако потребителя не се е вписал в CMS, да не може да отваря файловете в папка pma (тоест искам да огранича достъпа в папката, но конкретно чрез PHP)

Знам, че има начини с htaccess, но държа да ползвам PHP

Сесията в папка cms е проверявам така: $_SESSION['is_logged'] - true / false (1/0)

Ако потребителя има отворена сесия в cms после вече си има достъп до pma и се вписва с нужните данни потребител/парола, ако не е вписан в сесия is_logged го редиректва към /cms за вход. Не е голяма философия, въпроса е че не успявам да проверя сесията


Благодаря.

uphero
Добре познат
Добре познат
Reactions: 4
Мнения: 806
Регистриран на: Пон Фев 20, 2012 12:26 pm
Support: 35
9
Местоположение: Казанлък
Обратна връзка:

Re: Проверка за създадена сесия, но в различна директория

Мнение от uphero »

https://stackoverflow.com/q/24450436
Ili phpmyadmin auto login v google
Аватар

Topic author
Ticketa
Редовен
Редовен
Reactions: 4
Мнения: 647
Регистриран на: Пон Фев 27, 2012 1:54 pm
Support: 24
9
Местоположение: in /root
Обратна връзка:

Re: Проверка за създадена сесия, но в различна директория

Мнение от Ticketa »

Аз не търся Autologin за phpmyadmin.

Както казах:
Имам платформа за управление на съдържанието, искам когато Х потребителя е вписан в тази платформа той да може да стигне безпроблемно до website.com/pma (там вече сам си попълва данните за PMA)

Когато не е вписан просто директорията не се отваря, а получава redirect към website.com/cms

До колкото разбрах на този етап това, което се опитам да направя е "споделена сесия чрез php", за момента открих два варианта:
Първия вариант при логване в website.com/cms - записваме бисквитка например: access (просто пример) тази бисквитка има Х тайминг колкото е лог тайма в cms, към PMA добавяме в index.php една проверка дали има създадена бисквитка и дали е валидна, ако ДА .. то допускаме потребителя да си въведе данните към pma, ако ли не... изхвърляме го.

Вторият вариант е чрез запис и проверка в база от данни или файл който е достъпен за двата линукс акаунта примерно website.com/cms работи през акаунт CMS...,а PMA работи през акаунт PMA (логично) двете платформи имат общ достъп до файла: /home/acccess.txt (ограничени права само за CMS/PMA (обща група). В този файл не записваме нищо повече от
IP:Add:Expire

Реално не позволяваме някакви достъпи с имена, пароли и прочие. Просто проверка за вписване в системата.


Другия проблем, който предполагам, че ще имам в бъдеще е при актуализиране на phpmyadmin тези 2/3 реда код вероятно ще се самоизтрият за проверка във файла/базата данни/бисквитката, тогава как можем да държим този файл да бъде актуален с нашите данни постоянно дори след ъпдейт? Хм

p.s. бисквитката се криптира + салт за връщане (декриптиране) така, че външен "хакер" да не може просто да добави бисквитка с име "access" някакъв тайм е да е "пречупи" дори да е "подуши" от някой клиент... самата бисквитка като бисквитка просто те допуска до директорията, нищо повече.

Начин на криптиране

Код за потвърждение: Избери целия код

<?php
$simple_string = "Welcome to Phpmyadmin\n"; // Store a string into the variable which need to be Encrypted
echo "Original String: " . $simple_string; // Display the original string
$ciphering = "AES-128-CTR"; // Store the cipher method
$iv_length = openssl_cipher_iv_length($ciphering); // Use OpenSSl Encryption method
$options = 0;
  
$encryption_iv = '1234567891011121'; // Non-NULL Initialization Vector for encryption
$encryption_key = "keyforcrypt"; // Store the encryption key
  
$encryption = openssl_encrypt($simple_string, $ciphering, $encryption_key, $options, $encryption_iv); // Use openssl_encrypt() function to encrypt the data
  
echo "<br />Encrypted String: " . $encryption . "\n"; // Display the encrypted string
  

$decryption_iv = '1234567891011121'; // Non-NULL Initialization Vector for decryption
$decryption_key = "keyforcrypt"; // Store the decryption key
  

$decryption=openssl_decrypt ($encryption, $ciphering, $decryption_key, $options, $decryption_iv);// Use openssl_decrypt() function to decrypt the data
  

echo "<br />Decrypted String: " . $decryption; // Display the decrypted string
?>
Аватар

Revelation
Web-tourist
Web-tourist
Reactions: 7
Мнения: 981
Регистриран на: Нед Мар 24, 2013 1:23 pm
Support: 68
8

Re: Проверка за създадена сесия, но в различна директория

Мнение от Revelation »

Не знам защо си дал такава реакция на @uphero предвид, че ти е дал отговора.

Изброяваш потенциални проблеми с твоя вариант, а в същото време не си си направил труда да прочетеш темата в stackoverflow.
Публикувай отговор