Les politiques d'accès entre les domaines et de sécurité sont des défis communs dans le développement du réseau. Comment faire face à ces problèmes est particulièrement critique lors de l'utilisation de PHP et de savon pour le développement du serveur. Cet article présentera comment résoudre efficacement l'accès entre le domaine et assurer la sécurité, tout en fournissant des exemples de code pertinents pour aider les développeurs à mieux faire face à ces problèmes.
Lorsque le client et le serveur ne sont pas dans le même domaine, le navigateur restreint généralement l'accès au domaine croisé. Afin de résoudre efficacement ce problème, les deux méthodes suivantes peuvent être adoptées:
JSONP est une solution d'accès inter-domaines couramment utilisé. Il utilise l'attribut SRC des balises de script pour charger des ressources dans les domaines, en contournant les restrictions de politique homologues du navigateur.
// PHPCode de serveur
<?php
header('Content-Type: application/json');
$data = array("name" => "John", "age" => 30);
$callback = $_GET['callback'];
echo $callback . '(' . json_encode($data) . ')';
?>
<p>// JSCode client<br>
function displayData(data) {<br>
console.log(data);<br>
}<br>
var script = document.createElement('script');<br>
script.src = '<a rel="noopener" target="_new" class="" href="http://example.com/api?callback=displayData">http://example.com/api?callback=displayData</a>';<br>
document.body.appendChild(script);<br>
CORS est un moyen plus sûr d'autoriser les navigateurs à accéder aux ressources intermédiaires en définissant les en-têtes de réponse du côté serveur.
// PHPCode de serveur
<?php
header('Access-Control-Allow-Origin: http://example.com');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
header('Access-Control-Allow-Headers: Content-Type');
$data = array("name" => "John", "age" => 30);
echo json_encode($data);
?>
<p>// JSCode client<br>
var xhr = new XMLHttpRequest();<br>
xhr.open('GET', '<a rel="noopener" target="_new" class="" href="http://example.com/api">http://example.com/api</a>', true);<br>
xhr.onload = function() {<br>
if (xhr.status === 200) {<br>
var data = JSON.parse(xhr.responseText);<br>
console.log(data);<br>
}<br>
};<br>
xhr.send();<br>
Lors du développement de serveurs à l'aide de PHP et de savon, en plus de l'accès entre domaine, les problèmes de sécurité sont également des facteurs clés qui doivent être pris en compte. Voici quelques politiques de sécurité courantes:
Vérifiez les données saisies par l'utilisateur pour vous assurer que les données répondent au format et à la plage attendues, et peuvent effectivement empêcher les attaques d'injection SQL et XSS.
// PHPCode de serveur
<?php
$name = $_POST['name'];
if (!preg_match("/^[a-zA-Z ]*$/", $name)) {
echo "Invalid name";
} else {
// Manipuler légalname
}
?>
<p>// JSCode client<br>
var name = 'John<script>alert("XSS")</script>';<br>
var xhr = new XMLHttpRequest();<br>
xhr.open('POST', '<a rel="noopener" target="_new" class="" href="http://example.com/api">http://example.com/api</a>', true);<br>
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');<br>
xhr.send('name=' + encodeURIComponent(name));<br>
Pour les données sensibles, il est crucial d'utiliser des algorithmes de chiffrement et de décryptage pour protéger la sécurité des données.
// PHPCode de serveur
<?php
$key = 'secret_key';
$data = 'sensitive_data';
$encrypted_data = openssl_encrypt($data, 'AES-256-CBC', $key, 0, 'iv');
$decrypted_data = openssl_decrypt($encrypted_data, 'AES-256-CBC', $key, 0, 'iv');
?>
<p>// JSCode client<br>
var key = 'secret_key';<br>
var data = 'sensitive_data';<br>
var encryptedData = CryptoJS.AES.encrypt(data, key);<br>
var decryptedData = CryptoJS.AES.decrypt(encryptedData, key);<br>
Dans le développement de serveurs PHP et SOAP, les politiques d'accès et de sécurité croisées sont des problèmes importants qui doivent être résolus. Cet article décrit comment utiliser JSONP et CORS pour résoudre les problèmes d'accès inter-domaines et fournit des exemples de code pertinents. De plus, des stratégies de sécurité couramment utilisées telles que la vérification des entrées et le chiffrement des données sont également discutées. En gérant correctement ces problèmes, la sécurité et la stabilité de l'application peuvent être considérablement améliorées.