Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2011, 20:33   #1
Merovingian
Пользователь
 
Регистрация: 25.06.2010
Сообщений: 30
По умолчанию Как защитить часть кода от нежелательного доступа

Имеется код вида

PHP код:
<?php

//////////////////////////////////////////////////////// ПЕРВАЯ ЧАСТЬ
//соединяемся с базой

if(isset($_GET['w']))
{
    
$w $_GET['w'];
    
    
$res mysql_query("SELECT ........ FROM ....... WHERE id='$w'");
    
$row mysql_fetch_array($res);
    
// тут обработка данных, полученных из базы
    
    
    // ну и запихиваем обратно в базу
    
mysql_query("UPDATE ........ SET ........='........' WHERE id='$w'");
}
//////////////////////////////////////////////////////////// ВТОРАЯ ЧАСТЬ
$res mysql_query("SELECT id FROM ........ ORDER BY ..... LIMIT ...."$db);

$row mysql_fetch_array($res))

echo 
"<a href=\"index.php?w=$row['id']\">..................</a>"
?>
, Можно ли как-то защитить ПЕРВУЮ часть кода от вызова из адресной строки - можно писать в адр. строке "index.php?id=1" и будет выполняться первая часть, а нужно чтобы выполнялась первая часть, только после второй(после нажатия на ссылку)

Приходит в голову только из ссылки сделать кнопку типа submit и проверять POST[submit] - была ли нажата кнопка.

Или может как то вводить переменную как в случае защиты инклюдных файлов от прямого обращения?

Последний раз редактировалось Merovingian; 21.09.2011 в 20:36.
Merovingian вне форума Ответить с цитированием
Старый 21.09.2011, 20:55   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Можно проверять HTTP_REFERER - если переход был по ссылке - то он будет иметь значение, ну а если правили URL - то значения не будет.
Что-то вроде этого:
PHP код:
echo (!empty($_SERVER['HTTP_REFERER'])) ? 'link' 'url';
echo 
'<br/><a href="?w=1">Test</a>'
Но сама идея стрёмная какая-то - зачем это вообще нужно?

И у вас там SQL-injection во всю...
Andkorol вне форума Ответить с цитированием
Старый 21.09.2011, 21:10   #3
Merovingian
Пользователь
 
Регистрация: 25.06.2010
Сообщений: 30
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Можно проверять HTTP_REFERER - если переход был по ссылке - то он будет иметь значение, ну а если правили URL - то значения не будет.
Что-то вроде этого:
PHP код:
echo (!empty($_SERVER['HTTP_REFERER'])) ? 'link' 'url';
echo 
'<br/><a href="?w=1">Test</a>'
Спасибо! я почему-то не додумался
Цитата:
Сообщение от Andkorol Посмотреть сообщение
Но сама идея стрёмная какая-то - зачем это вообще нужно?
Ваще не нужно))) просто хотел узнать как можно защитить кусок кода)
Цитата:
Сообщение от Andkorol Посмотреть сообщение
И у вас там SQL-injection во всю...
Я пытался передать только смысл) Если б я подготовил нормальный код, то можно было бы задержаться тут до завтра читая его
Merovingian вне форума Ответить с цитированием
Старый 21.09.2011, 21:26   #4
Merovingian
Пользователь
 
Регистрация: 25.06.2010
Сообщений: 30
По умолчанию

Andkorol, реферер можно подделать. Есть еще какие-то методы?
Merovingian вне форума Ответить с цитированием
Старый 21.09.2011, 21:46   #5
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Merovingian Посмотреть сообщение
Andkorol, реферер можно подделать.
Если вам нужно защитить данные - ограничивайте доступ к скриптам, имеющим возможность их изменять.
Защищать какой-то отдельно взятый кусок кода, тем более использующий GET - это глупость по определению...
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
будьте добры, прокомментируйте часть кода nps1 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 22.06.2011 09:47
Прокомментировать часть кода Kasper1 Общие вопросы по Java, Java SE, Kotlin 4 08.01.2011 20:42
патттерн Observer(Непонятна часть кода) С++ sasharu9 Помощь студентам 1 09.12.2010 03:58
Как защитить БД SQLite3? Greek9000 БД в Delphi 0 26.03.2010 08:57
Помогите, пожалуйста, реализовать часть кода Horknee Паскаль, Turbo Pascal, PascalABC.NET 2 01.12.2008 23:30