Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > Övriga serverspråk > PHP

Säkerheten vid utskrift av text som matats in av tinymce t.ex

cortex
cortex

Gradering

#19083

Jag hoppas att topic går att förstå och även min förklaring!


Jag har en textarea jag matar in text i med hjälp utav en editor som t.ex http://tinymce.moxiecode.com/ och när man skriver ut så kan jag inte använda mig utav htmlentities t.ex för då blir det bara text och ingen fin design på texten, 


Så min fråga är hur jag kan lösa detta med säkerheten för att ingen t,ex skall kunna skriva <script>alert('hejhoppgrodanboll');</script> ?

Egenföretagare!
ID: #19083 | Skapades: 2010-01-11 16:29:50 | Tråden har 8 svar och har lästs 253 gånger.

voigtan
voigtan

Gradering

#19084

när du sparar informationen letear efter element du inte vill godkänna och ersätt dom med &lt;script&gt; eller: http://wiki.moxiecode.com/index.php...nvalid_elements

kan säkert fungera för dig om jag förstå mig på deras API.

Dock kan du ju aldrig lita på en editor som är gjord i Javascript, du måste även ha kollen i din PHP kod.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
Redigerades av voigtan den 11 januari 2010. Läs tidigare inlägg.
ID: #19084 | Skapades: 2010-01-11 16:39:48

cortex
cortex

Gradering

#19085

Men om jag ersätter dom med "&lt;script&gt;" så blir det ju vid utskriften <script> ?

Ja jag tänker inte använda någonting i javascript utan kommer köra php,

 

Har funderat lite på en funktion & array som ersätter t.ex alert med hejhopp , kan någon sådan lista fungera också också använda funktionen vid utskriften ?

Egenföretagare!
ID: #19085 | Skapades: 2010-01-11 17:05:58

voigtan
voigtan

Gradering

#19086

det är ju knappast alert() som är "farligt" vid sådna inmatningar, irretierande, ja kanske, men det är ju inte direkt något farligt med en alert(),

om någon skriver <script>....</script> så är det viktigare att den inte kör skriptet utan antingen ta man bort <script......../script> helt eller så gör man att den skriver ut:

&lt;script&gt;...&lt;/script&gt; så att man ändå kan använda sig av <script> om man exempelvis skriver ett kod exempel.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #19086 | Skapades: 2010-01-11 18:14:36

cortex
cortex

Gradering

#19087

Så denna fungerar då t.ex ?

 

  function tecken($text){

      $tecken = array(
         "<",
         ">
"
      $tecken_replace = array(
         "&lt;",
         "&gt;"

      $text = str_ireplace($tecken,$tecken_replace,$text);
     
      echo $text;
     
   }

Egenföretagare!
Redigerades av cortex den 11 januari 2010. Läs tidigare inlägg.
ID: #19087 | Skapades: 2010-01-11 20:37:37

cortex
cortex

Gradering

#19088

Någonting blev fel.....

Egenföretagare!
Redigerades av cortex den 11 januari 2010. Läs tidigare inlägg.
Redigerades av cortex den 11 januari 2010. Läs tidigare inlägg.
ID: #19088 | Skapades: 2010-01-11 20:37:54

voigtan
voigtan

Gradering

#19089

Citerar cortex:

Så denna fungerar då t.ex ?

 

Nej, då kommer <strong>, <em>, <h1>, dvs alla element kommer bli &lt; och &gt;

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #19089 | Skapades: 2010-01-11 20:58:47

cortex
cortex

Gradering

#19090

Då menar du så här t.ex.. ?

 

  function tecken($text){

      $tecken = array(
         "<script>",
         "</script>
"

      $tecken_replace = array(
         "&lt;script&gt;",
         "&lt;/script&gt;"

Egenföretagare!
ID: #19090 | Skapades: 2010-01-11 21:57:23

voigtan
voigtan

Gradering

#19092

hade hellre sett ett regexp för script-elementet helt och hållet. då <script > också kommer triggar ett javascript, regexp mönster:
<(\/?script[^>]*?>
och ersätt med
&lt;$1&gt;

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #19092 | Skapades: 2010-01-11 22:36:19
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy