Bonjour
je suis en train de tester ajax , et dans le souci de sécuriser l'appli , je poste ici , une réflexion au sujet du traitement de la réponse ,
mon souci premier étant le filtrage de celle-ci dans le sens ou l'on pourrai dans un cas extème m'envoyer des données agressives , je vous fait par du code de test , il est bien sur simpliste
la réponse provenant de la page chargée de la délivrer
elle peut provenir de mysql , la réponse mysql est écrite sous forme très simpliste , de la forme
image1.jpg*titre1*résumé1|image2.jpg*titre2*résumé2|image3.jpg*titre3*résumé3
et voici mon script ajax qui traite cette réponse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 function XR(k) { k = parseInt(k); if (k === 1) { alert('Votre navigateur ne supporte pas le protocole Ajax , désolé'); } else if (k === 2) { alert('La connexion au document a échoué , désolé'); } } var NI = navigator.userAgent.toLowerCase().indexOf('msie') != -1 ? 1 : 0; function SAF(x) { return x.replace(/[^a-zA-Z0-9 *-|]/gi, ''); } function XC(k, v) { var x; if (window.XMLHttpRequest) { x = new XMLHttpRequest(); } else if (window.ActiveXObject) { x = new ActiveXObject('Msxml2.XMLHTTP'); } else if (window.ActiveXObject) { x = new ActiveXObject('Microsoft.XMLHTTP'); } else { XR(1); return; } x.open('GET', 'pjx.php', false); if (parseInt(NI) === 0) { x.overrideMimeType('text/html;charset=iso-8859-15'); } x.onreadystatechange = function (a) { if (x.readyState == 4) { if (x.status == 200) { var p = SAF(x.responseText), v = ''; var d = new Array(); d = p.split('|'); for (var i = 0; i < d.length; i++) { var e = new Array(); e = d[i].split('*'); v += '<img src="http://www.monsite.com/img/' + e[0] + '"><div class="tr">' + e[1] + '</div><div class="res">' + e[2] + '</div>'; } document.getElementById('ca').innerHTML = v; } else { XR(2); return; } } }; x.send(null); }
le script est caricatural , il manque bien sur des filtrages plus appropriés au texte et images (caractères spéciaux éventuels , il y a déjà un filtrage en amont , bien sur
qu'en pensez vous ?
bruno
Partager