J'ai écrit le code ci-dessous mais je dois maintenant écrire cela avec jQuery à cause des raisons de sécurité. Je n'ai jamais fait quelque chose avec JQuery avant et je ne sais vraiment pas, comment écrire ceci. Je ne devrais pas mélanger le HTML avec JS et utiliser Creeeeeeyement et des trucs comme ça.
var demoName1 = "Peter Stone";
function showMessage() {
var newMsg = '<div id="messageBoxSend">' +
'<div class="nameSend">' + demoName1 + '</div>' +
'<div class="text">' +
' <div id="FscToolPaneNoseSend">' +
'</div></div>' +
document.getElementById('inputText').value;
var a = new Date();
var b = a.getHours();
var c = a.getMinutes();
if (c < 10) {
c = "0" + c;
}
var time = b + ':' + c;
newMsg += '<div class="time">' + time + '</div>' +
' </div></div><br>';
...
}
3 Réponses :
Vous allez essayer ce code P>
$ ('classe ou id'). HTML (''); P>
$ ('classe ou identifiant'). HTML (newmsg); p>
Pourquoi cela satisferait-il une raison de sécurité?
jQuery est une bibliothèque pour JavaScript, donc oui, si vous envisagez JavaScript pour être insécurisé, alors JQuery est également. En outre, JQuery facilite l'ajax, mais cela ne prouve pas que JQuery est sécurisé que JavaScript. P>
Ce serait quelque chose comme ci-dessous. Vous devriez probablement regarder dans les docs https://jquery.com/
p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" id="inputText"> <div id="messageBoxSend"> <div class="nameSend"></div> </div> <div class=""></div> <button onclick="showMessage();">Click me!</button>
Comment cela satisfait-ce que toute sécurité concerne que .innerhtml code> n'est pas?
Selon Mozilla, il est recommandé de santifier le HTML avant d'utiliser innerhtml (), vous pouvez en savoir plus ici ici développeur.mozilla.org/en-us/docs/mozilla/add-ons/webextensio ns / ...
Si vous changez simplement innerhtml = code code> avec .html (code) code> alors il n'y a pas de différence fonctionnelle. Et le moyen le plus simple de changer de contenu en toute sécurité est de éviter i> d'analyser directement HTML du tout et utilisez plutôt la manipulation DOM.
$ (...). HTML (NewMsg); Code>" Maintenant, je dois écrire ceci avec jQuery à cause de raisons de sécurité i>" Pourquoi JQuery serait-il plus sûr? Surtout si vous cherchez à mettre aveuglément HTML HTML sur la page qui est la vulnérabilité de sécurité pour commencer?
Qu'avez-vous fait à Vanilla JavaScript?
Je suppose que je veux que OP veuille de retourner la balise dans une demande Ajax, comme il suffit de passer la chaîne HTML à JQuery's
.html () code> n'est plus sécurisé que ce qu'ils ont affiché@Vlaz Il y a beaucoup de choses qui pourraient se tromper avec simplement en utilisant
innerhtml () code>, il est donc recommandé de désinfecter le HTML avant de l'utiliser.@designtocode que . Je demande pourquoi JQuery est plus sécurisé.
Vous pouvez rechercher des réponses @vlaz voir ici Stackoverflow.com/questions/3563107 / jquery-html-vs-innerhtml . Il a un essai / attrape .. Il est fait pour prendre en charge plusieurs navigateurs et préformes également plusieurs autres contrôles du HTML.
@designtocode Je demande à Op Pourquoi JQuery est considéré comme plus sûr dans son cas. Parce que n'importe quelle analyse directe i> de HTML est intrinsèquement dangereux, peu importe si vous le mettez dans une prise de temps. J'essaie de comprendre la préoccupation de la sécurité et le modèle de menace de l'OP. En disant simplement «je veux utiliser JQuery à cause de la sécurité» n'a aucun sens. C'est aussi significatif que dire "Je veux utiliser
pour code> boucle pour la sécurité". De même, toute réponse suggère une analyse directe de HTML n'a pas de sens sans savoir ce que i> ceci est censé résoudre. Remplacer.innerhtml = code code> avec.html (code) code> ne fournit aucun avantage de sécurité.