Jump to content
php.lv forumi

HTML kods lietotāja personīgajā lapā


No0ne

Recommended Posts

Sveiki! Ir tā, ka nolēmu ļaut lietotājiem paspēlēties ar HTML! BB-Kodi šķiet pārāk aprauti, protams, var izveidot jaunus, bet vai ir jēga? Kāpēc uzreiz neņemt no myspace piemēru? :)

 

Īsumā ko cenšos izdarīt:

 

Lietotājiem jāvar pievienot visu.. gandrīz visu.. ko viņi vēlas iekš HTML & tam smuki tā arī jāattēlojas! Taču es negribu, lai čakarētu lapu, ieliekot, piemēram, javascript alert, vai ifreimu kaadu!

 

Tad nu izdomāju, ka rīkošos sekojoši - visu neatļauto aizstāsim, līdz ar to nevarēs neko nočakarēt.. Kods šāds:

 

 

function html_dscr($s) {
$s = str_replace("<script", "< s c r i p t", $s);
$s = str_replace("<iframe", "< i f r a m e", $s);
$s = str_replace("html>", "h t m l >", $s);
$s = str_replace("body>", "b o d y >", $s);
$s = str_replace("java", "j a v a", $s);
$s = str_replace("<?php", "< ? p h p", $s);
$s = str_replace("alert", "a l e r t", $s);
$s = str_replace("cookie", "c o o k i e", $s);
$s = str_replace("<frame", "< f r a m e", $s);
$s = str_replace("charcode", "c h a r c o d e", $s);

return $s;
}

 

Viss darbojās super, bet.. nonācu pie jaunas atklāsmes - ja script pārveido par sCript vai iframe par iFrame, tad tas neaizstaajas ar neko..

 

Rakstīt katram keywordam visus variantus kaut kā nevelk, varbūt ir kāda iespēja nočekot gan lielos gan mazos burtus, neko neizmainot?

 

Nu, respektīvi, nevis tagad visu ar strtolower parvesam par lower case, bet vienkarsi atlaujam ignoret mazos lielos burtus!

 

Tas ir svarigi, jo varetu jau visu uz lower pataisit, bet pienjemsim tas html kods, kuru lietotajs ievieto izskatas sadi: <b>Es šodien biju pie Elīnas</b>

 

Tad sanaks, ka, lai parbauditu vai <b> nav aizliegtie keywordi, viss tiks parmests uz lowercase un lidz ar to teikuma sakums un iipashvaards bus ar mazo burtu..

 

 

 

Datoram gan explorer nestrada, tadelj nezinu cik sobrid isti pulkstens, bet domaju, ka ir vels, tadelj atvainojiet, ja nesakarigi sarakstits, bet ceru, ka sapratisiet :)

Paldies!

Link to comment
Share on other sites

Man šķiet ka Tev varētu noderēt arī funkcija strip_tags. Tomēr jebkurā gadījumā gan izmantojot savu variantu, gan šo funkciju padomā arī par citām iespējām iemānīt kaut vai to pašu javascriptu, piemēram, ja atļausi likt <a> tagu, tad ņem vērā ka javascriptu var pievienot linkam iekšā:

 

<a href="java script: alert('Ziņojums');">Nosaukums</a>

 

Vai arī:

 

<a href="links" onclick="java script: alert('Ziņojums');">Nosaukums</a>

Edited by Maris-S
Link to comment
Share on other sites

Paldies, pamēģināšu purifieru :)

 

Nejau tādēļ, ka str_ireplace nedara to, ko es vēlos, tā dara un vēl pie tam tieši tā kā vēlējos, taču Maris-s pareizi pieminēja, ka to visu nevar tā smuki repleisot, jo ir dažādi paņēmieni.. Ar Māra doto piemēru gan biju ticis galā jau sākumā un tik tālu aizdomājies, taču ir pretīgāki paņēmieni, ar kuriem traks paliksi,kamēr tiksi galā :)

 

http://ha.ckers.org/xss.html

Link to comment
Share on other sites

×
×
  • Create New...