i s m a i l p e r i m . n e t
js, ajax, php, mysql, c#
js, ajax, php, mysql, c#
PHP projelerimde kullandığım pratik güvenlik işlemlerini yapan 2 fonksiyonumu sizlerle paylaşmak istedim. Çalışma mantığı gayet basit : $_POST[] ve $_GET[] ile gelen tüm verileri basit bir filtrelerden geçiriyor. Bu filtreler ise htmlspecialchars,mysql_real_escape_string fonksiyonları ve benim aklıma gelen metin ve karakterleri değiştiren basit bir replace işleminden oluşuyor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <?php /** * @author İsmail Perim <http://ismailperim.net> <ismailperim@gmail.com> * @copyright 2009 © İsmail Perim <http://ismailperim.net> <ismailperim@gmail.com> * @license Licensed under the GNU General Public License, version 2. * @license the file http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt * @version $Id: genel.guvenlik.php 2010-01-31 17:09:06$ **/ class Guvenlik { public static function Kontrol() { $p = count($_POST); $pa = array_keys($_POST); for($pi = 0;$pi<@$p;$pi++) { $_POST[$pa[$pi]] = Guvenlik::Filtre($_POST[$pa[$pi]]); } $g = count($_GET); $ga = array_keys($_GET); for($gi = 0;$gi<@$g;$gi++) { $_GET[$ga[$gi]] = Guvenlik::Filtre($_GET[$ga[$gi]]); } } public static function Filtre($q) { $q = mysql_real_escape_string(htmlspecialchars($q)); $ara = array('"','#',"'",'*','+',';',"`",'OR','or','Or','oR'); $bul = array('"','#',''','*','+',';','`','','','',''); $q = str_replace($ara,$bul,$q); return $q; } ?> |
12 Åžubat 2010 - 19:48
bu şekilde for la döngü döndürmeye gerke yok bence.
array_map fonksiyonuyla direk olarak dizilerin tüm indislerine belirlenen fonksiyonları tek tek uygulatabilirsin.
13 Åžubat 2010 - 09:48
Yorumunuz ve öneriniz için teşekkür ederim. Ama ben array_map yerine döngü ile teker teker dönmeyi tercih ediyorum.
15 Åžubat 2010 - 16:51
Merhaba ben class ile daha yeni başlayacağım form uygulamasında bu classı nasıl kullanırım ve forumda text editörde var haliyle html kodlarıda olacak ama bir açık olsun istemiyorum ne yapmalıyım? Teşekkürler