2015-09-27 50 views
-1

我對Android和Java世界相當陌生;我試圖開發一個需要獲取並在數據庫中插入信息的應用程序。 我在網上搜索,我發現最好的解決方案是使用HTTP連接使用帶有Jsons輸出的PHP文件作爲應用程序和Mysql Db之間的接口。Android:Mysql,php,json,http和安全

然而,我無法弄清楚如何「安全」的一切。 舉例: 要更改用戶的暱稱我我的應用程序連接到一個PHP頁面使用此代碼:

$nickname = $_POST['nickname']; 
$id = $_POST['id']; 
nicknameChange($id,$nickname); 
function nicknameChange($id,$nickname){ 
global $mysqli; 
$sql = "UPDATE users SET nickname = ? WHERE id = ?"; 
$stmt = $mysqli->prepare($sql); 
$stmt->bind_param('si',$nickname,$id); 
$stmt->execute(); 
} 

通過後我通過用戶是想改變暱稱和新綽號的ID,如何能我確定沒有人會'操縱'該頁面傳遞給其他用戶的ID來更改他們的暱稱? 我在網絡上讀到HTTPS連接可以解決問題,那夠了嗎?

回答

0

在您的客戶端(Android)和服務器(PHP),你需要使用像 'API KEY'

在服務器

$message = 'Access denied'; 
$checkApi = false; 
if(function_exists('apache_request_headers')){ 
    if(apache_request_headers()['Authorization'] == '2d30ff242f8650954bfe8c993f084f4f') 
     $checkApi = true; 
} 

if(isset($_SERVER["Authorization"]) && $_SERVER["Authorization"] == '2d30ff242f8650954bfe8c993f084f4f'){ 
    $checkApi = true; 
} 

客戶的關鍵:在你的請求,你會把字符串'2d30ff242f8650954bfe8c993f084f4f'與關鍵'授權'給標題請求。

這是一個私鑰!

+0

如果有人用逆向工程獲得從應用的關鍵「2d30ff242f8650954bfe8c993f084f4f」他將能夠建立一個假的應用程序來繞過這個,就是這種說法正確嗎? – Ezechiele

+0

uhmm !!!究竟:( – hoangdv

+0

所以,你可以從你的Android應用程序ID生成它(例如:authen.example.com),並在您的要求,您發送的私人+應用ID(按法) – hoangdv