Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou preocupado com as opções dos navegadores que permitem, por exemplo, alterar para ativo um input que estava "disable" e alterar seu value de 10 para 500.
Como bloquear este tipo de ação?
Uso PHP como back-end e passo meus dados via dados via PDO.
Existe uma maneira de criptografar ou mesmo criar uma regra que valide meus dados?
Dim, utilizo a manipulação do banco com tratamento... mas como disse essa questão do alterar status de um input ou mesmo manipular ele tem sido um problema sério.
Desde sempre foi possível manipular o HTML de um formulário, hora que também sempre foi possível enviar dados por POST ou GET mesmo sem passar por sua aplicação.
Se você pode impedir que alguém altere o html ou envie dados? A resposta é simples, e é não, você não pode impedir nada disso.
(Se renderizou o HTML, entregou para o usuário é dele e ele pode manipular da forma que bem entender, desde o html, js, mídias etc...)
O que você pode e "DEVE FAZER" é sempre tratar qualquer tipo de informação que venha de um ambiente externo principalmente se alguma dessas informações vão se usadas em um banco de dados.
Lógico que o tipo e como vai ser tratada algum dado que entra depende de quão sensível ele é e qual sua finalidade.
Exemplo se o tipo de dado que tenho que validar é um INTEGER e a informação que entrou além de números inteiros entrou alguma string ou flutuante, posso simplesmente lançar um erro ao invés de continuar meu código.
Se vou por exemplo salvar uma string no banco de dados e essa string contém caracteres suspeitos como algarismos, chaves etc. Posso lançar um erro ou limpar essa string antes de acessar o database.
No geral é isso, sempre validar se o tipo de dado é o que vai ser usado, uma limpeza de string aqui e alí, junto a PDO você garante 90% de segurança, só não se consegue 100% porque nada é realmente inviolável.
Uma regra que valide seus dados? Depende como disse do que vai ser feito, e sim você pode criar uma regra/manha/truque como disse acima.
Mas lembre-se que quanto mais filtros você passa mais seguro vai está e menos usabilidade sua aplicação irá ter. Proteger excessivamente só vai deixar a coisa devagar.