Implementace form POST manageru do MVC architektury

Oxen

Aktivní uživatel
Zpráv
20
Bodů
69
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

Aktivní uživatel
Zpráv
20
Bodů
69
@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
116
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
116
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

Aktivní uživatel
Zpráv
20
Bodů
69
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