За последние 24 часа нас посетили 29696 программистов и 1763 робота. Сейчас ищут 984 программиста ...

Защита параметра GET при запросе к базе.

Тема в разделе "PHP и базы данных", создана пользователем aziz, 3 июн 2011.

  1. aziz

    aziz Активный пользователь

    С нами с:
    1 фев 2006
    Сообщения:
    194
    Симпатии:
    0
    Адрес:
    Ташкент
    Доброго всем времени суток. Столкнулся с такой проблемой. Имеется некая таблица в базе, где хронятся данные о пользователе. Через страничку авторизации пользователь получает доступ к своим данным.(предположим он прищёл по ссылке http://test.ru?id=4). Проблема в том что ничто ему не мешает набрать в адресной строке http://test.ru?id=5 и получить доступ к данным другого пользователя. Как можно защититься при такой ситуации. Вот код странички:
    Код (Text):
    1. <?php require_once('Connections/connn.php'); ?>
    2. <?php
    3.  
    4. if (isset($_GET['ID'])) {
    5.   $id1 = $_GET['ID'];
    6. }
    7. mysql_select_db($database_connn, $connn);
    8. $sql = sprintf("SELECT * FROM users  WHERE uid = %s", $id1);
    9. $result = mysql_query($sql, $connn) or die(mysql_error());
    10. $row = mysql_fetch_assoc($result);
    11. mysql_free_result($result);
    12. ?>
    13.  
    14. <table border="1" align="center">
    15.   <tr>
    16.     <td>Name</td>
    17.     <td><?php echo $row['Name']; ?></td>
    18.   </tr>
    19.   <tr>
    20.     <td>Lastname</td>
    21.     <td><?php echo $row['Lastname']; ?></td>
    22.   </tr>
    23.   <tr>
    24.     <td>Fatername</td>
    25.     <td><?php echo $row['Fatername']; ?></td>
    26.   </tr>
    27.   <tr>
    28.     <td>day</td>
    29.     <td><?php echo $row['day']; ?> <?php echo $row['mon']; ?> <?php echo $row['year']; ?></td>
    30.   </tr>
    31.   <tr>
    32.     <td>adress</td>
    33.     <td><?php echo $row['adress']; ?></td>
    34.   </tr>
    35.   <tr>
    36.     <td>telefon</td>
    37.     <td><?php echo $row['telefon']; ?></td>
    38.   </tr>
    39.   </table>
     
  2. ATI

    ATI Активный пользователь

    С нами с:
    3 янв 2008
    Сообщения:
    254
    Симпатии:
    0
    Адрес:
    Москва
    Один из вариантов:
    При логине в сессию вешать id пользователя, а потом по ней сверять.
     
  3. Alex_pac

    Alex_pac Активный пользователь

    С нами с:
    11 апр 2011
    Сообщения:
    285
    Симпатии:
    1
    Адрес:
    Россия, Тольятти
    а что у вас авторизация делает? имеено в ее механизме есть ответы на все ваши вопросы. Авторизация управляет доступом к страницам сайта.
     
  4. sasha2011

    sasha2011 Активный пользователь

    С нами с:
    13 июн 2011
    Сообщения:
    3
    Симпатии:
    0
    Адрес:
    Москва
    Проверь сайт на дыры в безопасности
    Рекомендую - http://find-xss.net/
    Мне нашел уйму дыр, уверен что и тебе поможет