Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer

PHP ile Veritabanı Girdilerini Temizleme

47 sec read

Veritabanınımıza veri girişi yaparken oldukça SQL saldırılarına dikkatli olmalıyız. Bu konuda alabileceğimiz en önemli tedbir veritabanına kayıt edilecek bilgilerinizi temizlemektir (sanitize). Bunun içinde kullanabileceğiniz en kapsamlı fonksiyonlardan birisini sizinle paylaşmak istedim. Umarım faydası dokunur.

[php]<?php
function cleanInput($input) {

$search = array(
‘@<script[^>]*?>.*?</script>@si’, // Javascript kodlarını temizleme
‘@<[\/\!]*?[^<>]*?>@si’, // HTML kodlarını temizleme
‘@<style[^>]*?>.*?</style>@siU’, // Stil kodlarını düzenleme
‘@<![\s\S]*?–[ \t\n\r]*>@’ // Çoklu yorum satırlarını temizleme
);

$output = preg_replace($search, ”, $input);
return $output;
}

function sanitize($input) {
if (is_array($input)) {
foreach($input as $var=>$val) {
$output[$var] = sanitize($val);
}
}
else {
if (get_magic_quotes_gpc()) {
$input = stripslashes($input);
}
$input = cleanInput($input);
$output = mysql_real_escape_string($input);
}
return $output;
}

//YUKARIDAKİ FONKSİYONLARIN KULLANIMI

$kotu_veri = "Merhaba <script src=’http://www.kotuniyetlibirsite.com/kotu_script.js’></script>guzel bir gun!";
$temiz_veri = sanitize($kotu_veri);

echo $temiz_veri;

// Çıktı: Merhaba guzel bir gun!"

// Ya da formlardan gelen veriyi şu şekilde temizleyebilirsiniz:
//$_POST = sanitize($_POST);
//$_GET = sanitize($_GET);
?>[/php]

Kaynak: http://css-tricks.com/snippets/php/sanitize-database-inputs/

Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer