Arkadaşlar merhaba siteme shout box kurdum ama html kodlarını yediğini farkettim
buda bildiğiniz gibi büyük tehlike arz ediyor. Bunu nasıl kapatabilirim ??? bu açığı bi kaç kişi;
htmlspecialchars ile değişkeni filtrelersen dedi ama bu nasıl yapılır bide include varmış nasıl yapıcam yardım edebilcek biri varmı?
Shout Box kurdum YALNIZ HTML KODLARINI YİYOR NASIL İNCLUDE YAPARIM
19
●1.723
- 26-07-2006, 03:29:57
- 26-07-2006, 03:39:20hazır bi kod mu bu? yani htmlspecialchars ile yapılır fakat post ile gelen veri nerde işleniyo onu bulman gerekiyo,
$_POST arat kod içinde,
eğer post la gelen veri başka bi değişkene atandıysa örnek olarak
$a=$_POST['falanfilan'];
o kısmı;
$a=htmlspecialchars($_POST['falanfilan']);
yapman yeterli olacaktır,
muhtemeken bu sınıf-nesne içinde olur, kod u yollama gibi bi imkanın olursa yardımcı olmaya çalışrm.. - 26-07-2006, 03:40:04
<? require("../SSI.php"); if (!defined('SMF')) die('Hacking attempt...'); // global variables global $db_connection, $context, $settings, $txt, $user_info, $modSettings, $db_prefix; // used in test scenario //@mysql_select_db($db_name, $db_connection); //display html header echo '<html xmlns="http://www.w3.org/1999/xhtml"', $context['right_to_left'] ? ' dir="rtl"' : '', '> <head> <meta http-equiv="Content-Type" content="text/html; charset=', $context['character_set'], '" /> <meta name="description" content="Shoutbox" /> <meta name="keywords" content="Shoutbox" /> <title>Shoutbox</title> <meta http-equiv="refresh" content="'.$modSettings['sbox_RefreshTime'].';URL=sboxDB.php"> <link rel="stylesheet" type="text/css" href="', $settings['theme_url'], '/style.css?rc2" /> <script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[ function killYesNo() { return confirm("'.$txt['sbox_KillShout'].'"); } // ]]></script> <style type="text/css"><!-- // --><![CDATA[ <!-- .Kill { color: #ff0000; } .OddLine { font-family: '.$modSettings['sbox_FontFamily1'].'; font-style: normal; font-size: '.$modSettings['sbox_TextSize1'].'; font-weight: normal; color: '.$modSettings['sbox_TextColor1'].'; } .EvenLine { font-family: '.$modSettings['sbox_FontFamily2'].'; font-style: normal; font-size: '.$modSettings['sbox_TextSize2'].'; font-weight: normal; color: '.$modSettings['sbox_TextColor2'].'; } body { padding: 0px 0px 0px 0px; background-color: '.$modSettings['sbox_BackgroundColor'].'; } a:link { color: #ff0000; text-decoration: none; } //--> // ]]></style>'; switch ($_REQUEST['action']) { case "write": if ((!$context['user']['is_guest']) || ($modSettings['sbox_GuestAllowed'] == "1")) { // empty messages are not allowed $content=$_REQUEST['sboxText']; if(chop($content."") != "") { // get actual weekday $days = array($txt['sbox_Sunday'],$txt['sbox_Monday'],$txt['sbox_Tuesday'],$txt['sbox_Wednesday'],$txt['sbox_Thurday'],$txt['sbox_Friday'],$txt['sbox_Saturday']); $day=$days[date("w")]; // weekday $date=$day." | ". date("G:i"); // time // handle spacial characters $content=addslashes($content); // insert shout message into database $sql = "insert into ".$db_prefix."sbox_content (name,content,time) values ('".$user_info['username']."','".$content."','$date')"; db_query($sql,__FILE__,__LINE__); // delete old shout messages (get id of last shouting and delete all shoutings as defined in settings $result = db_query("select id from ".$db_prefix."sbox_content where name='".$user_info['username']."' and content='".$content."' and time='$date'",__FILE__,__LINE__); $rows = mysql_fetch_assoc($result) ; $sql = "delete from ".$db_prefix."sbox_content where id < '".($rows["id"]-$modSettings['sbox_MaxLines'])."'"; db_query($sql,__FILE__,__LINE__); } } break; case "kill": if ($context['user']['is_admin']) { $id = "".$_REQUEST['kill']; if ($id != "") { $sql = "delete from ".$db_prefix."sbox_content where id=".$id.""; db_query($sql,__FILE__,__LINE__); } } break; } // close header and open body echo ' </head> <body>'; // get smilie path $themedir = $settings['default_theme_url']; // smf theme path $imgdir = $themedir."/images/"; // smilie path // get shout messages out of database $result = db_query("select * from ".$db_prefix."sbox_content order by id desc, time asc limit ".$modSettings['sbox_MaxLines'],__FILE__,__LINE__); if(mysql_num_rows($result)) { $count=0; // counter to distinguish font color while($row = mysql_fetch_assoc($result)) { $count = $count + 1; // increase counter $name = $row["name"]; // user name $date = $row["time"]; // shouting date and time $content = stripslashes($row['content']); // shouting content // replace smilie code with path to smilie image $content = str_replace ($txt['sbox_smilie01_code'], '<img src="'.$imgdir.$txt['sbox_smilie01_file'].'" alt="'.$txt['sbox_smilie01_text'].'" title="'.$txt['sbox_smilie01_text'].'" border="0" />', $content); $content = str_replace ($txt['sbox_smilie02_code'], '<img src="'.$imgdir.$txt['sbox_smilie02_file'].'" alt="'.$txt['sbox_smilie02_text'].'" title="'.$txt['sbox_smilie02_text'].'" border="0" />', $content); $content = str_replace ($txt['sbox_smilie03_code'], '<img src="'.$imgdir.$txt['sbox_smilie03_file'].'" alt="'.$txt['sbox_smilie03_text'].'" title="'.$txt['sbox_smilie03_text'].'" border="0" />', $content); $content = str_replace ($txt['sbox_smilie04_code'], '<img src="'.$imgdir.$txt['sbox_smilie04_file'].'" alt="'.$txt['sbox_smilie04_text'].'" title="'.$txt['sbox_smilie04_text'].'" border="0" />', $content); $content = str_replace ($txt['sbox_smilie05_code'], '<img src="'.$imgdir.$txt['sbox_smilie05_file'].'" alt="'.$txt['sbox_smilie05_text'].'" title="'.$txt['sbox_smilie05_text'].'" border="0" />', $content); $content = str_replace ($txt['sbox_smilie06_code'], '<img src="'.$imgdir.$txt['sbox_smilie06_file'].'" alt="'.$txt['sbox_smilie06_text'].'" title="'.$txt['sbox_smilie06_text'].'" border="0" />', $content); $content = str_replace ($txt['sbox_smilie07_code'], '<img src="'.$imgdir.$txt['sbox_smilie07_file'].'" alt="'.$txt['sbox_smilie07_text'].'" title="'.$txt['sbox_smilie07_text'].'" border="0" />', $content); $content = str_replace ($txt['sbox_smilie08_code'], '<img src="'.$imgdir.$txt['sbox_smilie08_file'].'" alt="'.$txt['sbox_smilie08_text'].'" title="'.$txt['sbox_smilie08_text'].'" border="0" />', $content); $content = str_replace ($txt['sbox_smilie09_code'], '<img src="'.$imgdir.$txt['sbox_smilie09_file'].'" alt="'.$txt['sbox_smilie09_text'].'" title="'.$txt['sbox_smilie09_text'].'" border="0" />', $content); $content = str_replace ($txt['sbox_smilie10_code'], '<img src="'.$imgdir.$txt['sbox_smilie10_file'].'" alt="'.$txt['sbox_smilie10_text'].'" title="'.$txt['sbox_smilie10_text'].'" border="0" />', $content); $content = str_replace ($txt['sbox_smilie11_code'], '<img src="'.$imgdir.$txt['sbox_smilie11_file'].'" alt="'.$txt['sbox_smilie11_text'].'" title="'.$txt['sbox_smilie11_text'].'" border="0" />', $content); $content = str_replace ($txt['sbox_smilie12_code'], '<img src="'.$imgdir.$txt['sbox_smilie12_file'].'" alt="'.$txt['sbox_smilie12_text'].'" title="'.$txt['sbox_smilie12_text'].'" border="0" />', $content); $content = str_replace ($txt['sbox_smilie13_code'], '<img src="'.$imgdir.$txt['sbox_smilie13_file'].'" alt="'.$txt['sbox_smilie13_text'].'" title="'.$txt['sbox_smilie13_text'].'" border="0" />', $content); $content = str_replace ($txt['sbox_smilie14_code'], '<img src="'.$imgdir.$txt['sbox_smilie14_file'].'" alt="'.$txt['sbox_smilie14_text'].'" title="'.$txt['sbox_smilie14_text'].'" border="0" />', $content); $content = str_replace ($txt['sbox_smilie15_code'], '<img src="'.$imgdir.$txt['sbox_smilie15_file'].'" alt="'.$txt['sbox_smilie15_text'].'" title="'.$txt['sbox_smilie15_text'].'" border="0" />', $content); // display shouting message and use a different color each second row if ($count % 2) echo ' <div class="OddLine">'; else echo ' <div class="EvenLine">'; if ($context['user']['is_admin']) echo '<a title="'.$txt['sbox_KillShout'].'" class="Kill" onclick="return killYesNo();" href="sboxDB.php?action=kill&kill='.$row['id'].'">[X]</a>'; echo '[ '.$date.' ] <b><'.$name.'></b> '.$content.'</div>'; } echo ' </body> </html>'; } ?> - 26-07-2006, 04:01:03Onu yapınca shout box içinde Parse erorr veriyor code 73 bilmem ne diyo editlediğimiz yerde 73 satır olmuyo o zaman shot box çalışmıyo gözükmüyo
Peki include olayı nasıl olur onu yapsak nolur ? onu yapabilirmiyiz html yememesi için include edebilirmiyiz ?