segunda-feira, 28 de março de 2016

Hardcore Devel #57 - Input Sanitizing

Hoje vamos falar de uma prática muito necessária em Php


Que é conhecida como Input Sanitizing.

O que é:
Input Sanitizing é uma prática de programação que diz respeito ao tratamento de dados de entrada. Dados de entrada são informações necessárias para o funcionamento de um determinado programa, determinados dados de entrada vão gerar determinadas saídas do seu algoritmo. Verificações do tipo, entradas diferente de 0 para divisões, strings não vazias, tudo isso é uma forma de Input Sanitizing.


Por que?
Determinadas entradas de dados causam comportamentos abnormais no seu sistema. Quase qualquer algoritmo de cálculo tem problemas com o 0. Entradas textuais geralmente dão muitos problemas porque podem se aproveitar de alguma propriedade que o algoritmo possui para gerar resultados indesejáveis. Isso é muito comum em aplicações que acessam bancos de dados uma vez que bancos de dados tem sintaxes específicas.

Isso é extremamente comum em Php. A maioria das aplicações em Php se aproveita de algum banco de dados para armazenar informações, e ao mesmo tempo, entrada de dados para aplicações desse tipo utilizam muitos dados textuais, o que torna o php um alvo de fácil exploração, mas existem algumas técnicas para solucionar isso.


Ataque a serem evitados:
Injeção de SQL:  Injeções de SQL se aproveitam da entrada de bancos de dados serem comandos textuais. Quando você coloca uma variável no meio da consulta você pode estar gerando um problema. Se a variável possuir um apóstrofo no meio, você pode estar sofrendo um ataque de injeção de SQL. Se tiver um apóstrofo e um ponto e vírgula, fuja para as colinas, porque aí certamente você tem um problema.

XSS: Essa sigla significa Cross Site-Scripting. que é basicamente você se aproveitar de uma linguagem de programação que a aplicação que as pessoas usam possui. Isso diz muito a respeito do Javascript, que gerlamente está habilitado na máquina das pessoas. A gente já tem uma noção de que sites mal intencionados colocam javascripts maliciosos para acessar informação confidencial. E se a pessoa pudesse, através de seu sistema php, embutir um javascript malicioso na sua página? Pois é. Isso é xss.


Como evitar:
A forma de evitar ataques de injeção de SQL é bastante documentada na internet. Existem funções programadas já para fazerem essa mágica. A grande brincadeira é você olhar para a entrada do indivíduo e tratar os apóstrofos como apóstrofos pra o seu banco de dados. Em outras palavras, escapando-os com contrabarras(backslashes)

Para evitar xss, apenas certifique-se de retirar tags <script> do seu código. Tome cuidado pois uma aproximação ingênua ainda pode gerar alguns problemas devido ao modo como a programação das funções em php são feitas.


Existem diversos artigos sobre isso na internet. Basta dar uma procurada!


Imagens:
devmedia.com.br

Nenhum comentário:

Postar um comentário