Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (5) « Первая ... 2 3 [4] 5  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Передача значений из JS в php, Передача значений из JS в php
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8737
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 3 дня
Карма: 591




Цитата (Игорь_Vasinsky @ 9.02.2016 - 14:56)
killer8080
достоверность, как тут её проверишь? можно указать любой ID по сути

вот для того и есть oAuth, выше ссылка на апи авторизации через ВК, и не нужно велосипедов wink.gif

Цитата (Игорь_Vasinsky @ 9.02.2016 - 14:56)
но ничего страшного не случиться, просто ФИО будет занесено в БД и пользователю назначен ID

ну да ничего страшного, просто кто то будет что то постить от чужого имени biggrin.gif

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hammer_tm  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 62
Пользователь №: 35622
На форуме: 4 года, 27 дней
Карма:




Цитата (killer8080 @ 9.02.2016 - 13:47)

если id юзера используется для авторизации, т.е. наделяются определённые права, то могут быть скомпрометированы.

id юзера определяются с помощью виджета https://vk.com/dev/Auth И для поверки авторизации используется md5(app_id+user_id+secret_key)

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

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hammer_tm  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 62
Пользователь №: 35622
На форуме: 4 года, 27 дней
Карма:




Цитата (killer8080 @ 9.02.2016 - 13:47)

тут дело не в количестве запросов, а в достоверности данных.

для этого я поставил в обработчик
header("Access-Control-Allow-Origin: http://мойсайт.рф");
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8737
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 3 дня
Карма: 591




Цитата (hammer_tm @ 9.02.2016 - 15:55)
id юзера определяются с помощью виджета https://vk.com/dev/Auth И для поверки авторизации используется md5(app_id+user_id+secret_key)

нельзя перекладывать авторизацию на клиентскую сторону, сервер не может проверить аутентичность юзера, без обращения к самому ВК напрямую.
Цитата (hammer_tm @ 9.02.2016 - 15:55)
Получение дополнительных данных, которые обсуждаются в этой теме, происходит уже после авторизации пользователя на сайте.

ну так полученный на стороне браузера id юзера и используется для авторизации? Или я не так понял?



Спустя 37 секунд killer8080 написал(а):
Цитата (hammer_tm @ 9.02.2016 - 16:00)

Цитата (killer8080 @ 9.02.2016 - 13:47)

тут дело не в количестве запросов, а в достоверности данных.

для этого я поставил в обработчик
header("Access-Control-Allow-Origin: http://мойсайт.рф");

и от чего это спасёт?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hammer_tm  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 62
Пользователь №: 35622
На форуме: 4 года, 27 дней
Карма:




Цитата (killer8080 @ 9.02.2016 - 15:03)

ну так полученный на стороне браузера id юзера и используется для авторизации? Или я не так понял?

Да, при условии что hash md5(app_id+user_id+secret_key) который прислал vk для авторизации совпадает с hash на моем сервере.
А secret_key юзер знать не может. Он задается в настройках приложения в vk dev
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25982
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 21 день
Карма: 725

Не курю:
1 год, 2 месяца, 8 дней


Цитата
ну так полученный на стороне браузера id юзера и используется для авторизации? Или я не так понял?

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


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hammer_tm  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 62
Пользователь №: 35622
На форуме: 4 года, 27 дней
Карма:




Цитата (killer8080 @ 9.02.2016 - 15:03)

header("Access-Control-Allow-Origin: http://мойсайт.рф");
и от чего это спасёт?

От того что обработчик будет записывать данные в БД полученные только с моего сайта.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8737
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 3 дня
Карма: 591




Цитата (hammer_tm @ 9.02.2016 - 16:12)
Да, при условии что hash md5(app_id+user_id+secret_key) который прислал vk для авторизации совпадает с hash на моем сервере.
А secret_key юзер знать не может. Он задается в настройках приложения в vk dev

ну это другое дело, я думал у тебя там просто user_name с id-шником аяксом прилетает smile.gif

Цитата (hammer_tm @ 9.02.2016 - 16:16)

Цитата (killer8080 @ 9.02.2016 - 15:03)

header("Access-Control-Allow-Origin: http://мойсайт.рф");
и от чего это спасёт?

От того что обработчик будет записывать данные в БД полученные только с моего сайта.

нет, не так, этот заголовок нужен для того чтоб js код с чужого сайта, пославший ajax запрос на твой сервер не смог получить ответ. Заметь именно не получить ответ, а не отправить запрос wink.gif



Спустя 5 минут, 37 секунд killer8080 написал(а):
Цитата (hammer_tm @ 9.02.2016 - 16:12)
Да, при условии что hash md5(app_id+user_id+secret_key) который прислал vk для авторизации совпадает с hash на моем сервере.

кстати эта подпись подтверждает только user_id, остальные данные, user_name, email и т.п, если есть, то могут быть подменены клиентом.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hammer_tm  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 62
Пользователь №: 35622
На форуме: 4 года, 27 дней
Карма:




Цитата (killer8080 @ 9.02.2016 - 15:22)

нет, не так, этот заголовок нужен для того чтоб js код с чужого сайта, пославший ajax запрос  на твой сервер не смог получить ответ. Заметь именно не получить ответ, а не отправить запрос ;) 


Что то я запутался.
Т.е. в БД может попасть подмененная информация?
Ну хотя, да. Можно же в адресной строке прописать http://мойсайт.рф/index.php?obrabotchik&first_name=подмененные_данные
Я правильно понял?

Цитата (killer8080 @ 9.02.2016 - 15:22)
кстати эта подпись подтверждает только user_id, остальные данные, user_name, email и т.п, если есть, то могут быть подменены клиентом.

Так и есть, для виджета авторизации.
Остальные данные добываются скриптом ниже, по id авторизованного пользователя.

<script src="//vk.com/js/api/openapi.js?121" type="text/javascript"></script>

<
script type="text/javascript">
VK.init({apiId: 963487894});
</
script>

<
script language="javascript">
VK.Api.call('users.get', {user_ids: 1}, function(r) {
if(r.response) {
ajaxcl(r.response[0].first_name);
}
}
);

function ajaxcl (first_name) {
var xmlhttp;
if ( window.XMLHttpRequest ) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject ( "Microsoft.XMLHTTP" );
}
xmlhttp.onreadystatechange = function () {
if ( xmlhttp.readyState == 4 ) {
//тут ответ сервера
}
}

//куда ушёл запрос
xmlhttp.open ( "GET", "/index.php?obrabotchik&first_name="+first_name+"&rand="+Math.random(), true );
xmlhttp.send ();
}
</script>


Обработчик:
<?php
header('Access-Control-Allow-Origin: http://мойсайт.рф');
header("Content-Type: text/html;charset=utf-8");

$first_name = isset($_GET['first_name']) ? urldecode($_GET['first_name']) : false;


if($first_name){
$first_name = mysql_real_escape_string($first_name);
mysql_query ("UPDATE `my_table` SET `first_name` = '$first_name' WHERE id = 'ID_АВТОРИЗОВАННОГО_ЮЗЕРА'");
exit;
}
?>


Это сообщение отредактировал hammer_tm - 9.02.2016 - 17:35
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25982
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 21 день
Карма: 725

Не курю:
1 год, 2 месяца, 8 дней


ты тока имя безопасно в бд обновляешь для конкретного юзера.
могут пройтись и имена всем поизменять. будет горе.

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

да это всё на шизофрению похоже тока


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25982
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 21 день
Карма: 725

Не курю:
1 год, 2 месяца, 8 дней


могу за 150р. зафиганить 100% вариант - чтобы левое имя не сунули


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hammer_tm  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 62
Пользователь №: 35622
На форуме: 4 года, 27 дней
Карма:




А если сделать так?

// Определяем $user_id авторизованного пользователя
$key = "123456789";
$random = md5($user_id.$key);


//куда ушёл запрос
xmlhttp.open ( "GET", "/index.php?obrabotchik?znachenie="+<?echo $random?>+"&first_name="+first_name+"&rand="+Math.random(), true );
xmlhttp.send ();[/code]

и в начале обработчика прописать

и в самом начале обработчика прописать
$random_hash = md5($user_id.$key); 

if($_GET['znachenie'] != $random_hash){
die();
}


Кстати, что лучше использовать die() или exit ?

Это сообщение отредактировал hammer_tm - 9.02.2016 - 18:16
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25982
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 21 день
Карма: 725

Не курю:
1 год, 2 месяца, 8 дней


яж увижу что ты в GET послал)) да и в POST Тоже всё перехватить можно.
мне даже $key знать не надо, я сразу $random увижу biggrin.gif


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25982
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 21 день
Карма: 725

Не курю:
1 год, 2 месяца, 8 дней


и харе туда такие затычки шлёпать, типа die() И exit() - у тебя там JSON должен вернуться


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
hammer_tm  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 62
Пользователь №: 35622
На форуме: 4 года, 27 дней
Карма:




Цитата (Игорь_Vasinsky @ 9.02.2016 - 17:51)
яж увижу что ты в GET послал)) да и в POST Тоже всё перехватить можно.
мне даже $key знать не надо, я сразу $random увижу :D

Да, но изменить можно только свои данные. Для случайного пользователя не получится, т.к. нужно знать $key, а он свой для каждого юзера.

Но почему-то если в $key есть буквы то не работает, если только цифры то всё ок.

А не проще ли не посылать данные на обработчик, а сделать так:

     xmlhttp.onreadystatechange = function () {
if ( xmlhttp.readyState == 4 ) {
//тут ответ сервера
<? mysql_query ("UPDATE `my_table` SET `first_name` = '?>+first_name+<?' WHERE id = 'ID_АВТОРИЗОВАННОГО_ЮЗЕРА'"); ?>
}
}


Цитата (Игорь_Vasinsky @ 9.02.2016 - 18:17)
и харе туда такие затычки шлёпать, типа die() И exit() - у тебя там JSON должен вернуться

А зачем его возвращать? Цель же записать в базу. Уведомление юзеру что данные записаны не обязательно.

Это сообщение отредактировал hammer_tm - 9.02.2016 - 19:25
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (5) « Первая ... 2 3 [4] 5  Ответ в темуСоздание новой темыСоздание опроса