PHP пропускает POST через HTML тег - PullRequest
0 голосов
/ 31 мая 2018

У меня есть следующий код:

<a class='list-group-item active' href='index.php?galleryId=$gallery[0]&id=gallery'>
                    <h4 class='list-group-item-heading'>$gallery[2]</h4>
                    <p class='list-group-item-text'>$gallery[3]</p>
                </a>

Я не хочу, чтобы пользователь мог редактировать galleryId в URL-адресе, поскольку он мог попасть в галереи, которые ему не нужны, отредактировав значение вURL.

Это URL: http://localhost/bilderDb/php/index.php?galleryId=2&id=gallery

Можно ли передать POST через тег, чтобы пользователь не мог его увидеть.Или есть другое решение для этого?

Спасибо за вашу помощь!

Редактировать: Я думаю, что я был неясен.Пользователь может видеть galleryId.Я не хочу, чтобы он мог это изменить.Когда он находится в переменной GET, он может просто изменить его в URL.

Ответы [ 3 ]

0 голосов
/ 31 мая 2018

Существует несколько способов защитить галерею от других пользователей

  1. Вместо галереи вы можете использовать имя слаг (случайная строка, включенная в gallery_id, например: fun-at-school-90i8j3)использования gallery_id, поэтому трудно узнать о галерее для другого пользователя.

  2. Вы можете использовать скрытые поля ввода на странице галереи, которые содержат идентификатор вашей галереи и тип.

  3. Вы можете зашифровать ваш gallery_id безопасными методами.

  4. Поставьте проверки на стороне сервера, чтобы проверить разрешения для доступа к галерее, которая связана с пользователями, и каждый раз, когда вы должны проверять идентификатор галереи, связан с действительным пользователем или нет.

0 голосов
/ 31 мая 2018

Можно ли передать POST через тег

Не без использования <a> бессмысленно.

, чтобы пользователь не мог видетьit.

Пользователь может видеть данные, которые их браузер отправляет в запросах POST.Это их браузер.

Или есть другое решение для этого?

Аутентификация.Авторизация.

Если пользователь не должен иметь доступ к URL-адресу, тогда, если он запрашивает его, подтвердите свою личность (например, заставьте его войти) и ответьте 403 .

0 голосов
/ 31 мая 2018

Здравствуйте, я думаю, вам следует создать две пользовательские функции, такие как encodeUrlParameter() и decodeUrlParameter() с пользовательской логикой логики encryption и description.

  1. при отправке страницы пользователюзатем используйте эти функции, чтобы зашифровать parameters таким образом, чтобы пользователь не мог умерить его осмысленным способом, так как вы боитесь.
  2. секунд также реализует параметр для user уровня доступа и также шифрует его.так что он достигнет вашей цели.что либо no tempering with data, либо access level тоже по-простому.
  3. Вы должны определить уровень пользователя и переменную сеанса для тех пользователей, которые скрыты от пользователя.если session идентификатор пользователя не позволил ему разрешение, то пользователь не сможет выполнить действие.

Например, используйте этот код репо Github Здесь

Здесь вы получите такие функции, как encrypt() и decrypt().Достаточно просто, но я даю пример кода.

<?php
    function encrypt($string, $key=5) {
        $result = '';
        for($i=0, $k= strlen($string); $i<$k; $i++) {
            $char = substr($string, $i, 1);
            $keychar = substr($key, ($i % strlen($key))-1, 1);
            $char = chr(ord($char)+ord($keychar));
            $result .= $char;
        }
        return base64_encode($result);
    }
    function decrypt($string, $key=5) {
        $result = '';
        $string = base64_decode($string);
    for($i=0,$k=strlen($string); $i< $k ; $i++) {
            $char = substr($string, $i, 1);
            $keychar = substr($key, ($i % strlen($key))-1, 1);
            $char = chr(ord($char)-ord($keychar));
            $result.=$char;
        }
        return $result;
    }

    $en = encrypt('1',6);
    echo "Encrypted:  " .$en;
    echo '<hr />';

    echo "Decrypted:  " .decrypt("$en",6);
?>

Теперь вы сможете передать эти encrypted данные, такие как paramerter name и value, либо оба в зашифрованном виде и decrypt перед их использованием.

OutputImage

enter image description here

ПРИМЕЧАНИЕ * Вкратце либо используйте этот код GitHub дляencryption и decryption или напишите свой собственный функциональный код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...