[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Передача значений из JS в php
Страницы: 1, 2, 3, 4, 5
killer8080
Цитата (Игорь_Vasinsky @ 9.02.2016 - 14:56)
killer8080
достоверность, как тут её проверишь? можно указать любой ID по сути

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

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

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

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

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

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

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

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

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

для этого я поставил в обработчик
header("Access-Control-Allow-Origin: http://мойсайт.рф");
killer8080
Цитата (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://мойсайт.рф");

и от чего это спасёт?
hammer_tm
Цитата (killer8080 @ 9.02.2016 - 15:03)

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

Да, при условии что hash md5(app_id+user_id+secret_key) который прислал vk для авторизации совпадает с hash на моем сервере.
А secret_key юзер знать не может. Он задается в настройках приложения в vk dev
Игорь_Vasinsky
Цитата
ну так полученный на стороне браузера id юзера и используется для авторизации? Или я не так понял?

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

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
hammer_tm
Цитата (killer8080 @ 9.02.2016 - 15:03)

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

От того что обработчик будет записывать данные в БД полученные только с моего сайта.
killer8080
Цитата (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 и т.п, если есть, то могут быть подменены клиентом.
hammer_tm
Цитата (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;
}
?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.