Regex ile sınıf / yöntem adlarını doğrulamak

0 Cevap php

Ben şu anda bir şirket için ve ben Sorgu dize yoluyla iletilen kontrolörü / yöntemi (bulamıyorum) RFC geçerli karakter olduğundan emin olmak gerekir güvenlik nedeniyle bir MVC Stil çerçeve üzerinde çalışıyorum.

Ben PHP yorumlayıcısı tarafından izin ne göre sınıf isimleri sterilize / doğrulamak gerekiyor

Örneğin:

class SomEFunk__YClAssName extends Controller
{

}

I SomEFunk__YClAssName doğrular regex çeşit ihtiyaç ve ihtiyaç eğer sterilize! Bu yöntemleri de aynı ilkeler olduğunu.

Gibi dikkate alınması gereken birkaç şey var

  • Başlangıcında Sayısal
  • Sadece hayvanlar çiziyor
  • Bazı PHP Özel Karakterler izin verilecek.

Bu veya olası ifadeler üzerinde herhangi bir bilgi gerçekten yararlı olacaktır.

İşte benim Router Kanununun bazı bunu uygulamak gerekiyor nereye kadar görmeniz mümkündür:

private function prepareQueryString()
    {
        if(strlen($this->query_string) == 0)
        {
            return;
        }
        //Remove [ending|starting|multiple] slashes
        $this->query_string = preg_replace('/^\/+|\/+$|\/(?=\/)/', '', $this->query_string);
        foreach(explode('/',$this->query_string) as $Key => $Value)
        {
            if($Key == 0)
            {
                $Controller = $this->AssignController($Value);
            }
            if($Key == 1)
            {
                $this->AssignMethod($Value);
            }else
            {
                $this->AssignParam($Value);
            }
        }

        //Build RouterVar stdClass
    }

    public function AssignController(String $Controller)
    {
        if(!empty($Controller))
        {
            //Sanitize
        }
    }

    public function AssignMethod(String $Method)
    {
        if(!empty($Method))
        {
            //Sanitize
        }
    }

    public function AssignParam(String $Param)
    {
        $this->params[] = $Param;
    }

Sen çek gerekli comment "sterilize" göreceksiniz.

0 Cevap