|
|
#1 (permalink) |
|
Üyelik Tarihi: 19.06.2007
Yer: istanbul
Mesaj: 6
|
PHP - Dosya Fonksiyonları ve Guvenlik hakkinda bir soru.
Merhaba,
bir PHP sistemi uzerinde calisiyorum. PHP konusunda biraz yeni sayilirim. Bu yuzden bu konuda bilgi ve tecrube sahibi kisilerden bir yardim istiyorum. Simdi konuyu soyle ozetleyim; makinemde /home/kullanici/ dizininde asd.txt adinda bir dosyam var. Bunu asagidaki kodlar ile acip gerektiginde degisiklip yapip save tusuna basinca kaydetmesi gerekiyor. Bunu asagidaki kodlar ile cok guzel bir sekilde yapiyorum. Fakat isin guvenlik boyutu sıfır. Yani bu kodu calistirdigimda ekrana gelen textarea da asd.txt nin icerigini goruyorum. Degisiklik yaparken en son satıra </textarea> <? falan filan kod ?> seklinde yada <marquee>asdad</marquee> yazdıgımda bunları kodların icindeymis gibi calistiriyor. Buda cok ciddi bir guvenlik tehtidi olusturuyor. Bunu nasil engelleyebilirim. Bu koda kucuk bir ekleme yapabilirseniz yada bana bir kaynak, fikir verebilirseniz cok sevinirim. Simdiden cok tesekkur ederim. Saygılar.. Bahsi gecen kod: Kod:
<HTML> <body> <?PHP $dosya = "/home/kullanici/asd.txt"; $form = $_POST["form"]; $degisiklik = $_POST["degisiklik"]; $yazilar = @implode('',file($dosya)); ?> <center> <?PHP if ($form == "SAVE") { $kaynak = fopen($dosya,"w+"); fwrite($kaynak, stripslashes($degisiklik)); fclose($kaynak); echo "<b>Ayarlar Kaydedildi.</b>"; } echo '<form action="dzn.PHP" method="post"> <textarea name="degisiklik">'; echo stripslashes($yazilar); echo '</textarea> <br><input type="hidden" value="'; echo $dosya; echo '" name="dosya"> <input type="submit" value="SAVE" name="form"></form>'; ?> </center> </body> </HTML> |
|
|
|
|
|
#2 (permalink) |
|
Re: PHP - Dosya Fonksiyonları ve Guvenlik hakkinda bir soru.
Burada senin yapman gereken HTML kodlarını etkisiz hale getirmek. Bunun için PHP nin htmlspecialchars() komutu işini görecektir. PHP nin (www.php.net ) kendi sitesinde ki örnek şöyle:
Kodlar: Kod:
<?PHP
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // <a href='test'>Test</a>
?>
HTML Code:
<a href='test'>Test</a> HTML Code:
<a href='test'>Test</a> Bu şekilde HTML kodlarını etkisiz hale getirebilirsinz. Yani kullanıcı dosyaya ne yazdıysa aynen onu görecektir. Tabi ifade içinden HTML kodlarını tamamen kaldırmanında bazı yolları var. Ancak onları tam hatırlayamadım. Ama zannedersem bu komut işini görecektir.
__________________
- çok lojik bi yer drkb - aklınıza bir fikir geldi. hem de çok fena bir fikir. paylaşın o zaman |
|
|
|
|
Zoque'a hoşgeldiniz!