Цитата (Игорь_Vasinsky @ 9.02.2016 - 14:56) |
killer8080 достоверность, как тут её проверишь? можно указать любой ID по сути |
Цитата (Игорь_Vasinsky @ 9.02.2016 - 14:56) |
но ничего страшного не случиться, просто ФИО будет занесено в БД и пользователю назначен ID |
Цитата (killer8080 @ 9.02.2016 - 13:47) |
если id юзера используется для авторизации, т.е. наделяются определённые права, то могут быть скомпрометированы. |
Цитата (killer8080 @ 9.02.2016 - 13:47) |
тут дело не в количестве запросов, а в достоверности данных. |
header("Access-Control-Allow-Origin: http://мойсайт.рф");
Цитата (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) |
Получение дополнительных данных, которые обсуждаются в этой теме, происходит уже после авторизации пользователя на сайте. |
Цитата (hammer_tm @ 9.02.2016 - 16:00) |
Цитата (killer8080 @ 9.02.2016 - 13:47) тут дело не в количестве запросов, а в достоверности данных. для этого я поставил в обработчик header("Access-Control-Allow-Origin: http://мойсайт.рф"); |
Цитата (killer8080 @ 9.02.2016 - 15:03) |
ну так полученный на стороне браузера id юзера и используется для авторизации? Или я не так понял? |
Цитата |
ну так полученный на стороне браузера id юзера и используется для авторизации? Или я не так понял? |
Цитата (killer8080 @ 9.02.2016 - 15:03) |
header("Access-Control-Allow-Origin: http://мойсайт.рф"); и от чего это спасёт? |
Цитата (hammer_tm @ 9.02.2016 - 16:12) |
Да, при условии что hash md5(app_id+user_id+secret_key) который прислал vk для авторизации совпадает с hash на моем сервере. А secret_key юзер знать не может. Он задается в настройках приложения в vk dev |
Цитата (hammer_tm @ 9.02.2016 - 16:16) |
Цитата (killer8080 @ 9.02.2016 - 15:03) header("Access-Control-Allow-Origin: http://мойсайт.рф"); и от чего это спасёт? От того что обработчик будет записывать данные в БД полученные только с моего сайта. |
Цитата (hammer_tm @ 9.02.2016 - 16:12) |
Да, при условии что hash md5(app_id+user_id+secret_key) который прислал vk для авторизации совпадает с hash на моем сервере. |
Цитата (killer8080 @ 9.02.2016 - 15:22) |
нет, не так, этот заголовок нужен для того чтоб js код с чужого сайта, пославший ajax запрос на твой сервер не смог получить ответ. Заметь именно не получить ответ, а не отправить запрос ;) |
Цитата (killer8080 @ 9.02.2016 - 15:22) |
кстати эта подпись подтверждает только user_id, остальные данные, user_name, email и т.п, если есть, то могут быть подменены клиентом. |
<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;
}
?>