您顯示的代碼沒有安全問題,只有一個:它將您的javascriptVar
到全局 Javascript 對象中。
你可能會更好地使用它。
echo "<script>
var annasApp = annasApp || {};
annasApp.javascriptVar = 'success';
</script>";
行var annasApp = annasApp || {};
var annasApp = annasApp || {};
如果它不存在,則在全局命名空間中創建一個對象。 然后它為對象分配一個屬性值。 這使得全局命名空間更干凈且不易出錯——其他代碼不太可能踩到您的代碼,反之亦然。
如果你的代碼想做annasApp.javascriptVar = $phpVariable;
你確實有潛在的安全問題。 您必須在回顯之前轉義 $phpVariable 中的數據。 否則,您的代碼可能容易受到跨站點腳本攻擊。 使用 JSON 是一種很好且安全的處理方式。
$jsonVariable = json_encode( htmlspecialchars( $phpVariable ) );
echo "<script>
var annasApp = annasApp || {};
annasApp.javascriptVar = $jsonVariable;
</script>";
htmlspecialchars()
是不必要的,除非您的 Javascript 數據將使用 HTML 呈現。