2016-06-03 5 views
0

habe ich erstellt eine Website basierend aufJavaScript Injektion, sondern bieten einen ckeditor mit Code Formatter

SQL Server 2014 
C# (ASP.NET) 
Javascript and jQuery 

Der Benutzer kann Informationen speichern, in einer Textbox auf meiner Website zu verhindern. Um Injektion zu verhindern, kann ich codieren/decodieren von Sonderzeichen. Der Benutzer sollte Code wie unten eingeben können, aber der Code sollte nicht ausgeführt werden. So weit, ist es gut.

<script type="text/javascript"> 
    $(document).ready(function() { 
     console.log('uuuuups.....'); 
    }); 
</script> 

Dieser Code wird unverändert in der Datenbank gespeichert. (ohne zuerst zu kodieren). Nun möchte ich meinen Benutzern einen Ckeditor anbieten und die Möglichkeit geben, das Code-Plugin zu benutzen. Die Code-Plugin selbst erstellt den folgenden Code:

<pre class="brush:jscript;"> 
&lt;script type=&quot;text/javascript&quot;&gt; 
    $(document).ready(function() { 
     console.log(&#39;uuuuups....&#39;); 
    }); 
&lt;/script&gt;</pre> 

ich versucht habe charcter wie

in SQL zu ersetzen
replace(replace(@text, '<', '&lt;'), '>', '&gt;') 

Aber das scheint den Code zu brechen, wenn ich zu sehen versuchen. Mein Problem ist jetzt, wie man damit umgeht? Habe ich zweimal codiert? Jeder Hinweis wird geschätzt.

+0

Sie über somthing wie Sanitize HTML denken kann: https://github.com/gbirke/Sanitize.js zum Beispiel – Steffomio

+0

[CKEditor HTML-Elemente entweicht] (http://stackoverflow.com/ Fragen/12700383/ckeditor-is-escaping-html-elements) –

Antwort

0

i ckeditor in meiner Website verwendet, und ich das gleiche Problem konfrontiert, ist es über Javascript-Injektion. wie man es verhindert, ohne die Sicht zu stören. Versuchen Sie in Ihrer Serverseite, die "< script ...>javascript code ...</script>" zu analysieren und zu löschen. Ich denke, es ist nicht schwer, dieses Tag in ASP.net noch in PHP zu finden.

Viel Glück

+0

Bitte geben Sie Code-Snippet/detaillierte Antwort für sie zu helfen! –