Jump to content
php.lv forumi

PHP koda simboli...


freimanisg

Recommended Posts

Gribētos zināt, kā tiek galā ar PHP un HTML koda sintaktisko simbolu aizstāšanu? Piemēram, ja kāds lietotājs ievada laukā: " <td>Ruksis tu tāds!</td> ", tad es vēlētos, lai šis "pseidokods" saglabātos kā teksts un arī tiek izvadīts kā teksts, kas nenostrādā. Šķiet, bija kaut kāda funkcija, taču nevaru atrast, laikam rokas par īsām... :(

Un jā, protams, ar šo es vēlētos arī nodrošināties pret to, lai netiktu ievadīti (un palaisti) kaut kādi kaitnieciski skripti-trojāņi...

Edited by freimanisg
Link to comment
Share on other sites

Pie šī teksta izvades lieto htmlspecialchars() vai htmlentities(). Nojaušu ka tas ir tas ko tu biji domājis. Cits variants ir pie teksta saglabāšanas izgriezt ārā html tagus ar strip_tags(), bet ne vienmēr tas ir piemērots. Skaties pats kā tev labāk patīk.

Edited by 101111
Link to comment
Share on other sites

Nuja, saglabā kā glabāji, bet pie izvades 101111 minētais, vai arī cits, sliktāks variants,

kā es gudrīts to dariju.

$izvadamais_teksts="<td>";
$izvadamais_teksts=str_replace("<","<",$izvadamais_teksts);
$izvadamais_texsts=str_replace(">",">",$izvadamais_teksts);
echo $izvadamais_teksts;

Link to comment
Share on other sites

Viens no augstākminētajiem.

 

Pieņemsim ka šis ir ļauns kods... JS...

 

<script type="text/javascript">
alert( 'XSS!' );
</script>

 

Ar doto fn un skatotes saņemto HTML (View Source)...

 

<script type="text/javascript">
alert( "XSS!" );
</script>

 

Visi "ļaunie" simboli ir aizstāti. Kods neizpildās, bet parādās tā, kā tika rakstīts.

 

Ir vēls, ko murgoju, bet ceri, ka saprati. =]

Link to comment
Share on other sites

Pie šī teksta izvades lieto htmlspecialchars() vai htmlentities(). Nojaušu ka tas ir tas ko tu biji domājis. Cits variants ir pie teksta saglabāšanas izgriezt ārā html tagus ar strip_tags(), bet ne vienmēr tas ir piemērots. Skaties pats kā tev labāk patīk.

Paldies, šitas laikam būs īstais!

Link to comment
Share on other sites

Ja lieto MySQL datubāzi, tad pats ērtākais veidots ir pie pašas datu ievades, ievadāmos datus eskeipot lietojot jau gatavo funkciju mysql_real_escape_string, un pēc tam izvadot datus tos attēlot caur funkcijām htmlspecialchars(stripslashes($a)). Protams, es būdams slinks pēc dabas esmu sev sarakstījis klases, ka šo visu veic manā vietā pie insertēšanas un datu attēlošanas, jo cilvēcība dažreiz liek aizmirst kaut kur piemest kādu eskeiptu, un tad gan var sanākt zili brīnumi. :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...