Güvenli alternatif mysql_real_escape_string için?

0 Cevap php

Ben bir sorgu yürütür bir fonksiyona bir değişken geçirerek

MySQL bağlantısı sadece işlevin içinde oluşur ve işlev içinde kapatır

Ben fonksiyon onları göndermek ÖNCE güvenle dizeleri kaçmak mümkün olmak istiyorum

O (sadece işlevin içinde yapılıyor) bir MySQL bağlantısı gerektirir çünkü mysql_real_escape_string kullanamıyorum

Ben basit bir cevap işlev içinde dizeleri kaçmayı olacaktır biliyorum, ama bazı kaçtı göndermek gerekiyor çünkü ben bunu yapamam, ve bir dizenin olmayan bazı kaçtı parçalar

Örneğin, ben bu gibi işlevi çalıştırmak gerekir:

myquery("'" . escape_me("My string") . "'");

Içine kaçan bir dize ile çıkmamış - Ben iki apostrophe's yolluyorum dikkat edin. Bu nedenle ben MyQuery işlev içinde argümanlar üzerine bir battaniye mysql_real_escape_string yapamaz.

Ben mysql_real_escape_string alternatif olarak kullanabilirsiniz düşündüren, aşağıdaki kodu bulundu:

// escape characters
function escape_me($value) {
    $return = '';
    for($i = 0; $i < strlen($value); ++$i) {
        $char = $value[$i];
        $ord = ord($char);
        if($char !== "'" && $char !== "\"" && $char !== '\\' && $ord >= 32 && $ord <= 126)
            $return .= $char;
        else
            $return .= '\\x' . dechex($ord);
    }
    return $return;
}

Bu fonksiyon Çokbaytlı saldırılarına karşı güvenli olup olmadığını bilmiyorum, ama ben de işlevini ben sorgulamak her zaman geri gerektiğini düşünüyorum

For example, inputting: Testing 3's "OK" is turned into Testing 3x27s x22OKx22 in the database

So my main question is: Do you know if there is another function I can use as an alternative to mysql_real_escape_string that will safely escape characters?

0 Cevap