Segurança - bjverde/formDin GitHub Wiki
Chamar o formulário via GET da url pode ser uma falha de segurança principalmente se o seu usuário precisa ser autenticado e autorizado. O formDin conta com uma proteção se setLoginFile foi informado no index e não tem uma sessão aberta, impedido o carregamento da tela. Mais informações em Autenticando o usuário > alterando o index.php
Chamar um formulário via url completa também não irá funcionar por dois motivos: 1 - Só no index tem a lista completa para carregas todos os módulos; 2 - Aplicações geradas com SysGen a primeira linha tem defined('APLICATIVO') or die()
; Exemplo de chamada diretamente
http://localhost/curso/appexemplo_v1.0/modulos/exe_campo_ajuda.php
Um possível problema é usuário não autorizados solicitar um formulário via GET.
Resolvendo o problema do usuário não autorizado
Com diversos Perfis de acesso é preciso verificar se o usuário pode acessar o modulo. Uma sugestão é alterar todos os módulos trocando $frm->show();
pela linha abaixo
if ( Acesso::moduloAcessoPermitido($_REQUEST['modulo']) ){
$frm->show();
}
Depois novos métodos devem ser incluídos na classe de acesso
/***
* Recebe o $_REQUEST[modulo] e informa se usuario pode acessar ou não o modulo
* @param string $dsUrl
* @throws InvalidArgumentException
* @return boolean
*/
public static function moduloAcessoPermitido($dsUrl){
$permitido = false;
if(empty($dsUrl)){
throw new InvalidArgumentException('Erro: Modulo não informado');
}else{
$dadosMenu = self::getUserModuloAcesso();
$listDsUrl = ArrayHelper::getArray($dadosMenu, 'DSURL');
$permitido = in_array($dsUrl, $listDsUrl);
if( $permitido==false ){
$permitido = in_array('modulos/'.$dsUrl, $listDsUrl);
}
}
return $permitido;
}
Próxima etapa ?
21 - Layout e CSS