2016-02-19 7 views
1

Я разрабатываю приложение для Android, в котором я отправляю некоторый текст, файлы на сервер. Я использую JSON для загрузки файлов на сервер. Но я хочу обеспечить безопасность для загрузки данных. Данные должны загружаться только с устройства Android. В моем случае, если я отправляю данные с помощью почтового менеджера, он загружается на сервер.Аутентификация данных перед загрузкой на сервер в android

PHP-разработчик сказал мне, что «отправлять данные в заголовке». Я google, и я нашел код.

Authentication.java

public class Authentication { 

    public void AuthenticateData(String url) { 

     HttpPost httppost = new HttpPost(url); 

     httppost.addHeader("userId","someName"); 
     httppost.addHeader("secretKey","password"); 

    } 
} 

И я использую его, как таким образом.

Authentication authentication 
URL = "url_to_upload_data"; 
JSONParser jParser = new JSONParser(); 
. 
. 
authentication.AuthenticateData(URL); 
. 
List<NameValuePair> param = new ArrayList<NameValuePair>(); 
param.add(new BasicNameValuePair("emailid", emailid)); 
param.add(new BasicNameValuePair("device_reg", deviceRegNo)); 
param.add(new BasicNameValuePair("message",message));")); 
JSONObject json_Object = jParser.makeHttpRequest(URL, "POST", param); 

Это правильный способ сделать это. Будет ли это безопасно?

+0

Вы пробовали использовать код? –

ответ

1

Проблема с вашим кодом в том, что AuthentificateData ничего не возвращает.

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

Для обеспечения безопасной передачи вам необходимо использовать асимметричную криптографию, также ссылающуюся на public key cryptography. Открытый ключ может быть известен кем угодно, и его можно хранить в телефоне. Вы должны защитить свой сервер, чтобы не пропустить ваш закрытый ключ.

Для аутентификации вы можете также использовать digital signatures.

Вы не должны реализовывать их с нуля. У вас есть simple examples, чтобы начать.

+0

Я сделал с шифрованием. так как я новичок в php. Если я перейду в HTTP-ссылку в браузере. он попросит у меня учетные данные –

+0

Я не уверен, насколько я понимаю ваш вопрос. Вы хотите иметь аутентификацию пользователя или нет? В любом случае, используя открытый ключ, вы можете зашифровать любые данные достаточно надежно, чтобы их можно было передать в виде простого текста http (заголовок или тело). Вы можете кодировать имя пользователя и пароль так же, как текстовые данные или двоичные данные. Человек, который говорил «использовать заголовки», относится к нормальному процессу передачи идентификаторов и идентификаторов сеансов в http, чтобы избежать необходимости вводить свой пароль и имя пользователя каждый раз, когда вы нажимаете на ссылку. –

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