2014-01-05 4 views
1

Я разрабатываю мобильное приложение с html5 (Intel XDK) и сервером кодирования с php. В моем приложении пользователи могут загружать изображения с мобильных устройств на сервер. Но когда я изменил код на стороне сервера, чтобы проверить , пользователь вошел в систему с сеансом, переменная session возвращает null. Мой код выглядит следующим образом.Использование XMLHttpRequest с PHP-сессией

var par= new FormData(document.getElementById('form')); 
var obj= new XMLHttpRequest(); 
... 
obj.open('POST', 'url.com/upload.php'); 
obj.send(par); 

И в коде на стороне сервера я хочу проверить переменную сеанса.

if($_SESSION['user_logged_in'] == 1) 

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

How to pass php session with XMLHttpRequest

Есть ли хороший iplementation для этой проблемы? Спасибо заранее.

EDIT: Я вызываю session_start и если я удаляю вход в систему, это работает. Другие страницы, которые я вызывал с помощью Ajax, имеют переменные сеанса. Мои сомнения в безопасности в том, что мой идентификатор сеанса будет отображаться в исходном коде, не будет ли это проблемой безопасности?

+0

Можете ли вы проверить (с помощью fiddler, chrome tools и т. Д.), Отправляется ли cookie сеанса с запросом? И вы вызываете session_start() в начале в upload.php? – johnnycardy

+1

Не должно быть проблем с передачей идентификатора сеанса. Как вы думаете, как браузер работает с сеансом в обычном режиме? – geedubb

+0

@johnnycardy yes Я вызываю сеанс сеанса. – PepeDeLew

ответ

0

Если вы не храните идентификатор сеанса на стороне клиента, как вы можете идентифицировать сервер? Вы можете изменить идентификатор сеанса с сильно сгенерированным, это лучший подход.

И, пожалуйста, проверьте, включены ли файлы cookie и т. Д. Итак, вам нужно выполнить некоторую отладку.

+0

Я проверяю свой код, сессии работают на страницах, которые я вызывал с помощью сообщения ajax. – PepeDeLew

1

Вы можете использовать плагин Cordora App Security API для улучшения защитных мер на вашем токене/id, Более подробную информацию об этом плагине Cordova вы можете найти here. Также доступны для вас ссылки на фрагменты кода для «Хранение в безопасном хранилище» и «Чтение из безопасного хранилища» here.

К слову, API поддержки приложений поддерживается в Intel XDK, вы можете добавить его в свое приложение с помощью меню управления плагином -> плагин с плагином -> API безопасности приложений -> нажмите «добавить плагин» ».

Смежные вопросы