Maincore Dosyasında bilinmesi gerekenler…
Şubat 13, 2010 | Kategori: PHP - Fusion
Bu bölümde maincore.php dosyası ve bu dosyadaki önemli fonksiyonları inceleyelim… İlerki derslerde gerekli olacak fonksiyon bilgisine sahip olabilelim bu sayede.
Xss Ataklarına karşı önlem, bu önlem sitenize $GET global değişkeni ile gelen zararlı kodları temizleyen bir güvenlik önlemidir.
foreach ($_GET as $check_url) { if (!is_array($check_url)) { $check_url = str_replace("\"", "", $check_url); if ((preg_match("/<[^>]*script*\"?[^>]*>/i", $check_url)) || (preg_match("/<[^>]*object*\"?[^>]*>/i", $check_url)) || (preg_match("/<[^>]*iframe*\"?[^>]*>/i", $check_url)) || (preg_match("/<[^>]*applet*\"?[^>]*>/i", $check_url)) || (preg_match("/<[^>]*meta*\"?[^>]*>/i", $check_url)) || (preg_match("/<[^>]*style*\"?[^>]*>/i", $check_url)) || (preg_match("/<[^>]*form*\"?[^>]*>/i", $check_url)) || (preg_match("/\([^>]*\"?[^)]*\)/i", $check_url)) || (preg_match("/\"/i", $check_url))) { die (); } } } unset($check_url);
DB Fonksiyonları
dbquery -> DB de listeleme ekleme, silme, düzenleme komutlarını çalıştıran bir fonksiyondur. Örneğin veri eklemek için dbquery(“insert into db_tablosu values (‘veri’,'veri’,'veri’)”); şeklinde kullanılır.
dbcount -> Bir tablodaki belirli kritelerde ki içerik sayısını gösterir.
dbresult -> Mysql_result fonksiyonu ile aynı işlemi görür. Id si bilinen bir veriyi getirir.
dbrows -> Bir tablodaki tüm içerik satır sayısını gösterir.
dbarray -> dbquery komutu ile listelenen içeriklerin while ya da for gibi döngülerde açılımını sağlar. (Verileri belirli bir arraya atar)
dbconnect -> Database bağlantı fonksiyonudur. Bu fonksiyondaki veriler config dosyanızdan alınır.
function dbquery($query) { $result = @mysql_query($query); if (!$result) { echo mysql_error(); return false; } else { return $result; } } function dbcount($field, $table, $conditions = "") { $cond = ($conditions ? " WHERE ".$conditions : ""); $result = @mysql_query("SELECT Count".$field." FROM ".$table.$cond); if (!$result) { echo mysql_error(); return false; } else { $rows = mysql_result($result, 0); return $rows; } } function dbresult($query, $row) { $result = @mysql_result($query, $row); if (!$result) { echo mysql_error(); return false; } else { return $result; } } function dbrows($query) { $result = @mysql_num_rows($query); return $result; } function dbarray($query) { $result = @mysql_fetch_assoc($query); if (!$result) { echo mysql_error(); return false; } else { return $result; } } function dbarraynum($query) { $result = @mysql_fetch_row($query); if (!$result) { echo mysql_error(); return false; } else { return $result; } } function dbconnect($db_host, $db_user, $db_pass, $db_name) { $db_connect = @mysql_connect($db_host, $db_user, $db_pass); $db_select = @mysql_select_db($db_name); if (!$db_connect) { die(" <div style="font-family: Verdana; font-size: 11px; text-align: center;"><strong>Unable to establish connection to MySQL</strong>".mysql_errno()." : ".mysql_error()."</div> "); } elseif (!$db_select) { die(" <div style="font-family: Verdana; font-size: 11px; text-align: center;"><strong>Unable to select MySQL database</strong>".mysql_errno()." : ".mysql_error()."</div> "); } }
Diğer Fonksiyonlar
redirect -> Sayfa yönlendirme. Header yolu ya da Javascript komutu ile sayfanızı yönlendirmenize olanak sağlar.
eğer redirect(“index.php”,true) şeklinde kullanılırsa js ile redirect(“index.php”) şeklinde kullanılırsa php nin header fonksiyonu ile yönlendirme yapar.
// Redirect browser using header or script function function redirect($location, $script = false) { if (!$script) { header("Location: ".str_replace("&", "&", $location)); exit; } else { echo "<script type="text/javascript"><!--mce:0--></script>\n"; exit; } }
stripinput -> Form verilerini temizleme fonksiyonu. Bu fonksiyon genelde textarea dışındaki tüm form elemanlarında kullanılır. zengin yazı editörlerinden gelen veriler üzerine bu fonksiyonu uygularsanız yazıların tüm still değişikliği kaybolacaktır. Çünkü bu fonksiyon tüm kodlamaları güvenilir hale getirmekle görevlidir.
function stripinput($text) { if (QUOTES_GPC) $text = stripslashes($text); $search = array("&", "\"", "'", "\\", '\"', "\'", "<", ">", " "); $replace = array("&", """, "'", "\", """, "'", "<", ">", " "); $text = str_replace($search, $replace, $text); return $text; }

1 Yanıt: Maincore Dosyasında bilinmesi gerekenler…
PHP-Fusion Maincore dosyası incelemesi
Şubat 26th, 2011 at 13:37
[...] stripinput -> Form verilerini temizleme fonksiyonu. Bu fonksiyon genelde textarea dışındaki tüm form elemanlarında kullanılır. zengin yazı editörlerinden gelen veriler üzerine bu fonksiyonu uygularsanız yazıların tüm still değişikliği kaybolacaktır. Çünkü bu fonksiyon tüm kodlamaları güvenilir hale getirmekle görevlidir. 1 2 3 4 5 6 7 function stripinput($text) { if (QUOTES_GPC) $text = stripslashes($text); $search = array("&", """, "'", "\", '"', "'", "<", ">", " "); $replace = array("&", """, "'", "", """, "'", "<", ">", " "); $text = str_replace($search, $replace, $text); return $text; } Kaynak:Arızalı.net [...]