Я довольно новичок в сеансах.PHP-сессии; Как я могу решить эту большую проблему безопасности?
У меня есть сайт для объявлений, и пользователи могут выбрать «ИЗМЕНИТЬ» свои объявления.
Все, что им нужно ввести, это пароль, который они выбрали при создании классифицированных.
На странице "edit.php", если пароль верен, отображаются секретные данные. Существует инструмент загрузки изображений, который перезагружает страницу, но одновременно загружает изображение и просматривает пользователя.
Проблема заключается в том, что при загрузке pic я не хочу, чтобы страница запрашивала пароль снова. (это потому, что перезагрузка страницы) Не так приятно, если для каждой загрузки pic требуется пароль.
Так что я установить переменную сеанса, как это:
if($pass==$row['pass']){ $_SESSION['correct_pass']=1; }
затем в edit.php на перезагрузку, я проверяю против этого условия:
if($pass==$row['pass'] || $_SESSION['correct_pass']==1){
EDIT AD HERE
}
проблема (большая проблема) является то, что после того, как пользователь вводит правильный пароль, создается СЕССИЯ ['correct_pass'] и устанавливается в 1.
После этого пользователь может нажать «назад» в браузере и ввести другой номер объявления в URL-адрес, d Сессия PHP будет считать, что пароль все еще в порядке.
Так, другими словами, можно изменить другие народы, если вы это понимаете.
Как это решить?
Если вам нужно больше ввода, дайте мне знать ...
Ниже приведены несколько строк кода, который дополнительно описывает edit.php файл (не проверено):
//FIRST VISIT TO "EDIT.PHP?ad_id=ID_OF_CLASSIFIED_HERE"
if($todo==0){
//User is shown 2 radios, and a password form, and choses either to remove classified, or change classified
}
//REMOVE CLASSIFIED
if($todo==1){
//User has chosen to remove a classified
if($pass==$row['pass']){
//DELETE CLASSIFIED
}
if($pass!=$row['pass']){
//SHOW WRONG PASSWORD WARNING
}
}
if($todo==2){
//User has chosen to change a classified
if($pass==$row['pass'] || $_SESSION['correct_pass']==1){
if(!isset($_SESSION['correct_pass'])){
$_SESSION['correct_pass']=1;
}
//EDIT AD HERE
}
else {
//SHOW WRONG PASSWORD WARNING
}
}
Благодаря
Чтобы сохранить идентификатор пользователя вместо глупого «1», все проблемы решались. –