2014-10-30 7 views
0

Я пытаюсь разработать способ для моего клиента отправить мне запрос на завивание, чтобы получить данные с моего сервера. Мне нужно, чтобы это было psuedo-secure. Я бы ожидал, что мой клиент пришлет мне что-нибудь, я проведу его аутентификацию, а затем жду, пока он пришлет мне запрос на получение данных. Что-то вродеsecure curl call - вызовы командной строки

curl -O 1.2.3.4/curlRequest.php?username=Joe&password=123456790 

curlRequest.php проверит некоторые учетные данные. Ясно, что передача u/p поверх get - ужасная идея. любые мысли, как я могу это сделать. Я не прошу кого-либо писать код для меня, я спрашиваю больше, какие процедуры я мог бы использовать для достижения своей цели.

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

curl 1.2.3.4/authCurl.php?userName=Joe 

, используя это и тот факт, что этот запрос пришел от известного сервера, я могу ответить со строкой:

125tewgkljgetEDtstdkj 

тогда все будущие запросы должны содержать эту строку в течение следующих Х минут:

curl -O 1.2.3.4/curlRequest.php?hash=125tewgkljgetEDtstdkj 

Это ужасная идея? Любые другие варианты, которые вы могли бы порекомендовать?

+1

хотя бы использовать сообщение, поэтому их пользователь/пропуск не набиты в ваш access_log , отключите пользователя от запроса - выпустите ключ API (например, случайную буквенно-цифровую строку, которая никоим образом не может быть привязана к конкретному пользователю, кроме как через вашу базу данных). –

+0

Вы говорите, что я должен клиент X должен иметь ключ adsakglsdjglkj, а у клиента должен быть ключ lk4yhkljfhdgkjh и просто отправить этот вызов? – bart2puck

+0

точно. эта строка может быть такой простой, как 'sha1 ($ username. $ password. 'randomsaltstringhere')', но с учетом строки типа asdfasdfasdfasdfasd не будет никакого практического способа вернуть «Джо» из нее. –

ответ

0

лучший способ - завивать, самый безопасный в вашем случае. Сценарий, который будет на сервере, обрабатывает данные из массива $ _POST и создает случайную манеру, которая возвращает ключ клиенту, и для каждого соединения проверяет его ключи ... если ключ отсутствует в новом входе и обновить ключ в базе данных и клиенте

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

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