[DÚVIDA] Ajax, sistema de nível, dashboard de CMS, sugestões sobre o sistema


(Bruno F. Alves) #1

Fala galera.

Estou projetando um CMS e em alguns elementos que julguei necessário fiz uma requisição php com o ajax.

Porém, este CMS possui duas pastas, uma painel e outra cliente. Que se encontram juntas com toda a pasta app (que possui todas as classes do php) e a pasta _ajax (que possui todas as requisições, tanto para o cliente quanto para o administrador).

Fiz o mesmo layout para as duas pastas (clientes e painel).

painel administrador

painel do cliente

Enquanto estava construindo a pasta clientes (foi feita depois da administrador e depois das requisições ajax), percebi que posso, obviamente, através do form com os mesmo dados passados na administrador, requisitar arquivos que deveriam ser protegidos e apenas o adm conseguir mexer neles.

O meu medo é o seguinte, através do DOM, caso o usuário tenha o conhecimento dos nomes para requisitar estes arquivos (ajax), ele consegue fazer coisas que o administrador conseguiria. Então pensei em criar um sisteminha de nível. Mas o problema é que terei que adicionar este método em todos os ajax para ele fazer a verificação.

Gostaria de saber de vocês agora! Está correto tudo isso que venho fazendo? Ou há um modo mais simples de realizar tal procedimento?

Hierarquia de pastas

Entendendo mais ou menos como meu sistema foi feito, está correto dessa forma? Ou devo seguir outra linha. Pois minha ideia é aumenta-lo e gostaria de ter uma direção agora mais cedo, antes que ele cresça muito.

Perguntas:

O ajax está correto sendo feito deste modo?

Devo fazer o sistema de nível para prevenir qualquer tentativa de requisição de métodos php?

Devo fazer várias pastas para diferenciar os dashboards?

Tem mais sugestões? Deixe abaixo que vai me ajudar muito.


(Jonatan Santana) #2

Por que não define no javascript / jquery que todas as requisições solicitadas por formularios sejam em ajax? E aos itens que não necessitarem desse tipo de requisição, você inclui uma classe específica para negar este uso.

Assim você não precisa e varios arquivos para controlar a requisição de cada modulo.
Você terá um controlador global.

E para impedir a requisição de metódos, você pode utilizar isso:

if(!empty($_SERVER[‘HTTP_X_REQUESTED_WITH’])
&& strtolower($_SERVER[‘HTTP_X_REQUESTED_WITH’]) == ‘xmlhttprequest’) {
// codigo aqui. Aqui você insere todo o codigo que processa os dados e adiciona uma cama de validação antes, para se certificar de que a informação que estã tentando enviar po meio de um acesso indevido não sejam validas.
}

Significa que o arquivo só aceita requisições do tipo ajax.


(Bruno F. Alves) #3

Eu pensei nisso. Porém não faço ideia de como fazer essas requisições. Pois todas elas estão em diferentes classes na minha pasta _app. Por exemplo, quero excluir um cliente, tenho um método para isso e uma tabela no banco que quero atacar e isso para todos. Não consigo pensar como posso fazer para ser automático, já que as requisições são feitas de diferentes classes e métodos.


(Jonatan Santana) #4

Simples. Atribua a requisição em ajax para o elemento que for clicado.
Seja ele um botão ou um link.

Quando for clicado, ai você enviar os dados.