フォームデータbase 64符号化コミット
1348 ワード
フロントエンドのデータ暗号化は比較的論争的な問題である.セキュリティの観点から、機密情報にかかわるデータの提出は、明文ではない必要があります.技術的な観点から見ると、フロントエンドの暗号化はあってもなくてもよい.ブラウザ側では、すべてのコードがユーザーに露出し、どんな方法で暗号化しても、その暗号化アルゴリズムが見えるからだ.ただし、httpsを使用していない場合は、フロントエンド符号化データを一時的に使用してもよい.
base 64符号化を使用すると、対応するライブラリをページに直接導入できます.アドレス:js-base 64
例:
組立データの説明:
バックエンド解析、pythonを例に:
ファイルヘッダに対応するライブラリを導入します.unquoteはurlencode後のデータを解析するために使用されます.そうしないと、漢字解析に問題が発生します.
base 64符号化を使用すると、対応するライブラリをページに直接導入できます.アドレス:js-base 64
例:
Base64.encode('dankogai'); // ZGFua29nYWk=
Base64.encode(' '); // 5bCP6aO85by+
Base64.encodeURI(' '); // 5bCP6aO85by-
Base64.decode('ZGFua29nYWk='); // dankogai
Base64.decode('5bCP6aO85by+'); //
Base64.decode('5bCP6aO85by-'); //
組立データの説明:
var ajax_data += "a=" + 123;
ajax_data += "&b=" + '1@@@dwddc&&*';
ajax_data = Base64.encode(ajax_data);
$.ajax({
type: 'POST',
url: '',
data: ajax_data
});
バックエンド解析、pythonを例に:
import base64
from urllib import unquote
data_res = {}
ajax_data = base64.b64decode(request.POST.get('ajax_data') or '')
#base64
if ajax_data:
ajax_data_arr = ajax_data.split('&')
#
for item in ajax_data_arr:
temp = item.split('=')
data_res[temp[0]] = unquote(temp[1])
ファイルヘッダに対応するライブラリを導入します.unquoteはurlencode後のデータを解析するために使用されます.そうしないと、漢字解析に問題が発生します.