Oca 31, 2010

PHP Güvenlik Fonksiyonlarım

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('&quot;','&#35;','&#39;','&#42;','&#43;','&#59','&#96;','','','','');
        $q = str_replace($ara,$bul,$q);
        return $q;
    }
 
 
 
?>

3 Comments

  • 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.

  • Yorumunuz ve öneriniz için teşekkür ederim. Ama ben array_map yerine döngü ile teker teker dönmeyi tercih ediyorum.

  • 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

Leave a comment