我在學習編程、網路資料傳輸和API。 我創建了一個在兩個網站之間進行資料傳輸的簡單模型。 我有三個關于以下程序的基本問題。 在回顧中,假設兩個網站都設定了TLS。
下面這個簡單的程序是否是兩個網站之間資料傳輸的良好安全架構?
下面的簡單程序是否是兩個網站之間資料傳輸的良好安全架構?
這個簡單的例子是否可以稱為API?
在這個例子中,如何實作額外的安全(即API密鑰等)?
網站1--一個簡單的網路表單來捕獲和發送資料:
<! DOCTYPE HTML>
<html>
<head>
</head>
<body>
//定義變數并設定為空值。
$name = $email = $gender = $comment = $website = "。
if ($_SERVER["REQUEST_METHOD"/span>] == "POST"/span>) {
$name = test_input($_POST["name"])。
$email = test_input($_POST["email"] )。)
$website = test_input($_POST["website"]) 。
$comment = test_input($_POST["comment"]) 。
$gender = test_input($_POST["gender"] )。)
}
function test_input($data) {
$data = trim($data)。
$data = stripslashes($data)。
$data = htmlspecialchars($data)。
return $data;
}
<h2>PHP表單驗證實體</h2>
<form method="post" action="include/redirect.php">
名稱:<輸入型別="text" name="name">。
<br><br>
E-mail: <input type="text" name="email">
<br><br>
網站:<input type="text" name="site">
<br><br>
評論:<textarea name="評論" rows="5" cols="40"></textarea>
<br><br>
性別。
<input type="radio" name="gender" value="female">女性
<輸入型別="radio" name="gender" value="male"> Male
<輸入型別="radio" name="gender" value="other">Other
<br><br>
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
網站1 在表單提交時運行的包含檔案:
if (isset($_POST['name'/span>]) & & $_POST['name']! ="") {
$name = $_POST['name'] 。
$url = "https://localhost/api/api/"/span>.$name;
$client = curl_init($url)。
curl_setopt($client,CURLOPT_RETURNTRANSFER,true)。
$response = curl_exec($client)。
$result = json_decode($response)。
echo "<table>"/span>;
echo "<tr><td>Name:</td><td>$result->name</td> </tr> ";
echo "<tr><td><td>$result-> amount</td> </tr> ";
echo "<tr><td>回應代碼:</td><td>$result->回應_code</td></tr>"。
echo "<tr><td>回應描述:</td><td>$result->回應_desc< /td> < /tr>";
echo "</table>"。
}
網站2--在包含檔案中呼叫:https://localhost/api/api/".$name;。 網站2接收資料并為其分配一個數額,然后回傳資料。
<?php
header("Content-Type:application/json"/span>)。
if (isset($_GET['name']) & & $_GET['name']! ="") {
$name = $_GET['name'] 。
}
else {
response(NULL, NULL, 400,"Can't process options now, visit local dealer") 。
}
if($name=="Joe"/span>){
$amount = "700"。
$response_code = "Good";
$response_desc = "Good";
response($name, $amount, $response_code,$response_desc) 。
}
else {
response(NULL, NULL, 200,"現在不能處理選項,訪問當地經銷商")。
}
function response($name, $amount,$response_code,$response_desc){
$response['name'] = $name;
$response['quantity'] = $amount;
$response['response_code'] = $response_code。
$response['response_desc'] = $response_desc;
$json_response = json_encode($response)。
echo $json_response;
}
? >
uj5u.com熱心網友回復:
下面這個簡單的程序是否是兩個網站之間資料傳輸的一個好的安全架構?
是的,這可以作業。如果你只是想讓兩個網站服務器相互通信,我建議通過.htaccess檔案或防火墻來限制對腳本的訪問,這樣它就不會被公開訪問。
當然,只要有可能,通過 PHP 呼叫方法而不是在腳本之間發送 HTTP 請求,幾乎在任何方面都更安全、更快、更好。
這個簡單的例子是否可以稱為API?
應用編程介面(API)是計算機之間或計算機程式之間的一種連接。它是一種軟體介面,為其他軟體提供服務。
來自Wikipedia。API
嗯,是的,你已經實作了一個 API。你的計算機能夠與服務器通信,以發送和接收資料,你的兩個網站/服務器也可以與對方通信并向對方提供服務。
在這個例子中,如何實作額外的安全性(即API密鑰等)?
正如我之前提到的,根據你的要求,你可以限制對用于服務器間通信的 API 端點(本例中為 "https://localhost/api/api")的訪問,以防止你的服務器以外的人使用它(使用 .htaccess 檔案或在代碼中檢查 IP)
此外,你可以限制對用于服務器間通信的 API 端點的訪問。
此外,在服務器到服務器的部分,有一些方法可以防止欺騙性攻擊,包括(來源):
- 使用 HTTP 基本認證(如果你想更進一步,也可以使用 OAuth)
- 使用共享的秘密。
- 使用一個共享的秘密(API密鑰) 。
- 包括一個簽名,以驗證內容沒有被改變(例如,HMAC,見使用TLS通信時是否需要HMAC?)
這絕不是全面的,我希望它可以提供一些答案和進一步研究的要點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/319782.html
標籤:
上一篇:Curl命令(或無頭的Python替代品)用于從新的www.ffiec.gov網站刮取銀行控股公司(FRY-9C)的資料?
