Implementace form POST manageru do MVC architektury

Oxen

Člen
Zpráv
16
Bodů
47
Zdravím, již nějakou dobu se snažím do své MVC aplikace implementovat form manager, tento form manager by měl vzít data z odeslaného pole a přes controller jej zakomponovat do tohoto form manageru, ovšem mě nenapadá žádné optimální řešení pro takto strukturovanou aplikaci...

kisspng-yii-modelviewcontroller-software-framework-c-5b109fff93d369.0196265715278161916055.jpg
Toto je moje přibližná struktura aplikace..
 

Oxen

Člen
Zpráv
16
Bodů
47
@Houbovy_kolac děkuji moc, nejvíce asi využiji trojfazove overeni, ale chci se zeptat jestli jsi bral v potaz i možnost XSS útoku a taky SQL injection, popřípade CSRF utoku
 

Houbovy_kolac

<? print_r(explode('_', 'Houbovy_kolac')); ?>
Zpráv
106
Bodů
339
Servery
89.203.249.120
SQL Injection ošetřuje PDO. CSRF útok je taktéž ošetřen pomocí náhodnéno algoritmu, který je uveden nahoře vlevo na obrázku.
Přikládám ošetření XSS pomocí algoritmu, který je použit v projektu ProfessionalTickets, tento algoritmus je na 100.8% účinný vzhledem k jeho komplexitě.
PHP:
    function xss_fix {
        $data = str_replace(array('&amp;','&lt;','&gt;'), array('&amp;amp;','&amp;lt;','&amp;gt;'), $data);
        $data = preg_replace('/(&#*\w+)[\x00-\x20]+;/u', '$1;', $data);
        $data = preg_replace('/(&#x*[0-9A-F]+);*/iu', '$1;', $data);
        $data = html_entity_decode($data, ENT_COMPAT, 'UTF-8');
        $data = preg_replace('#(<[^>]+?[\x00-\x20"\'])(?:on|xmlns)[^>]*+>#iu', '$1>', $data);
        $data = preg_replace('#([a-z]*)[\x00-\x20]*=[\x00-\x20]*([`\'"]*)[\x00-\x20]*j[\x00-\x20]*a[\x00-\x20]*v[\x00-\x20]*a[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iu', '$1=$2nojavascript...', $data);
        $data = preg_replace('#([a-z]*)[\x00-\x20]*=([\'"]*)[\x00-\x20]*v[\x00-\x20]*b[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iu', '$1=$2novbscript...', $data);
        $data = preg_replace('#([a-z]*)[\x00-\x20]*=([\'"]*)[\x00-\x20]*-moz-binding[\x00-\x20]*:#u', '$1=$2nomozbinding...', $data);
        $data = preg_replace('#(<[^>]+?)style[\x00-\x20]*=[\x00-\x20]*[`\'"]*.*?expression[\x00-\x20]*\([^>]*+>#i', '$1>', $data);
        $data = preg_replace('#(<[^>]+?)style[\x00-\x20]*=[\x00-\x20]*[`\'"]*.*?behaviour[\x00-\x20]*\([^>]*+>#i', '$1>', $data);
        $data = preg_replace('#(<[^>]+?)style[\x00-\x20]*=[\x00-\x20]*[`\'"]*.*?s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:*[^>]*+>#iu', '$1>', $data);
        $data = preg_replace('#</*\w+:\w[^>]*+>#i', '', $data);
        do
        {
            $old_data = $data;
            $data = preg_replace('#</*(?:applet|b(?:ase|gsound|link)|embed|frame(?:set)?|i(?:frame|layer)|l(?:ayer|ink)|meta|object|s(?:cript|tyle)|title|xml)[^>]*+>#i', '', $data);
        }
        while ($old_data !== $data);
        return $data;
    }
 

Houbovy_kolac

<? print_r(explode('_', 'Houbovy_kolac')); ?>
Zpráv
106
Bodů
339
Servery
89.203.249.120
Dobrý den, funkce zamezí XSS útoku jen z části, zjistil jsem to, že systém ProfessionalTicekts od maxo_svk je odpad.
 

Oxen

Člen
Zpráv
16
Bodů
47
Děkuji, radši jsem si napsal vlastní script který mohu lépe implementovat do mé architekrury. Mimochodem, s tím ProfessionalTickets máte naprostou pravdu, měl jsem to u sebe na serveru a díky tomu ten serveru už není :)
 
Top