как обрабатывать изменения URL php / mysql - PullRequest
1 голос
/ 24 октября 2010

У меня проблема с пониманием проблем безопасности в следующем сценарии.У меня есть сайт, на котором есть регистрация пользователей, и они могут создавать события, войдя в систему. Если я вошел в систему как пользователь и имею URL-адрес типа http://abc.com/index.php?page=edit&pageid=45., я вижу эту страницу после входа в систему, в противном случае она будетпоказать экран входа в систему ... но после входа в систему, и если я изменяю URL с http://abc.com/index.php?page=edit&pageid=45 на http://abc.com/index.php?page=edit&pageid=567

, я могу редактировать эту страницу .. что является проблемой безопасности.как справиться с этим?Есть ли лучший способ справиться с редактированием в URL?Пожалуйста, ведите меня.Или как я могу справиться с этим с помощью сценариев ... проверяя что-либо вроде имени пользователя и его ассоциации с идентификаторами страницы?

, пожалуйста, помогите мне.

Я думал, что-то вроде не показывать переменную pageid вURL-адрес и каким-то образом передать его как скрытый со страницы 1 на страницу 2. Но я не знаю, как именно это сделать, или если это хорошее решение вообще.

Относительно

Ответы [ 2 ]

1 голос
/ 24 октября 2010

Я думаю, это нормально, передавая pageid в URL. Следующее - убедиться, что пользователь может редактировать только свою страницу. Я хотел бы сохранить идентификатор пользователя в таблице вместе с событиями.

Затем на странице редактирования, когда вы получаете информацию о событиях, вы можете проверить идентификатор пользователя (из таблицы) с идентификатором пользователя от лица, вошедшего в систему.

Как то так

// I don't know how your query works, but it would go here.

// Then before you output the edit form, Add something like this
if( $_SESSION['user_id'] == $event_result['user_id'] ) {
    // They match, show the form
}else {
    // they don't match
    echo 'Excuse me, what are you doing?';
}
1 голос
/ 24 октября 2010

одна возможность - установить и использовать переменную $ _SESSION, чтобы определить, разрешено ли пользователю посещать определенную страницу Другая возможность - использовать post вместо get для формы входа. дайте мне знать, если я могу уточнить.

редактирование:

<form method="get" action="login.php" name="form"></form>

против

<form method="post" action="login.php" name="form"></form>

после входа в систему вы можете установить

 <?php $_SESSION['user_id'] ?>

и в верхней части страницы, которую вы используете, вы можете получить утверждение типа

 <?php if($_SESSION['user_id'] != $_POST['pageid']{//not valid} ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...