Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Переменные через ajax

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
xsnaip
Отправлено: 10 Апреля, 2013 - 13:01:19
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)




Вопрос по безопасности передачи переменных.
На сайте есть каталог, куда пользователи добавляют свои сайты и описание.
В mysql есть таблица с полями
id, name_site, url, email, id_user
Например, пользователь добавил в каталог свой сайт.
Затем хочет изменить в описании email.
на страничке в input вводит новый email. С этой страничке текст с инпута передается через функцию jquery .ajax (POST) на php скрипт (file.php) в котором функция
UPDATE table SET email = email WHERE id = id_site
обновляет запись в таблице.
Вопрос в том как передать переменную id_site ? Если вставить в скрытый input, то ее можно легко подменить, тоже самое если засунуть ее значении в id какого нибудь тега.
т.е. при отображении кода вида
$.ajax({
type: "POST",
url: "/file.php",
data: {id_site = xxx, email = value_input},
cache: false,
error:function(){
alert("error");
},
success: function(data) { ....
можно прямо в браузере изменить id_site и email измениться у другой записи в таблице.

(Отредактировано автором: 10 Апреля, 2013 - 13:03:14)

 
 Top
biperch
Отправлено: 10 Апреля, 2013 - 14:04:17
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




а ты пользователю смотри в сессии у тебя пользователя то id есть

UPDATE table SET email = $email WHERE id = $id_site AND id_user = $id_user

И все будет окей
 
 Top
xsnaip
Отправлено: 10 Апреля, 2013 - 14:10:47
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)




C сессией понятно. А еще какие нибудь способы есть спрятать переменные ?
Просто интересно для общего развития. Чтобы не могли подменить значения например на какие нибудь запрещенные.
 
 Top
Zuldek
Отправлено: 10 Апреля, 2013 - 16:08:01
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




Нужно не стремится к тому чтобы была невозможна отправка вам каких-то левых значений.
Стремится нужно к тому, что отправка к вам любых значений не привела к их использованию без проверки на валидность.
В данном конкретном случае при замене ты должен проверять имеет-ли данный юзверь право чего-то там менять в конкретном сайте, id которого пришло из формы. Если не имеет, - перманент бан ему Улыбка (ну или просто не производить изменений)

(Отредактировано автором: 11 Апреля, 2013 - 09:54:57)

 
 Top
xsnaip
Отправлено: 11 Апреля, 2013 - 09:39:31
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)




ок. Спасибо за совет.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTTP и PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB