Pesquisar este blog

quinta-feira, 11 de abril de 2013

Implementando Segurança em PHP ao Pegar os Dados via POST ou GET


/* Filtro de caracteres especiais para segurança. Stripslashes e mysql_real_escape_string esta função pode ser usada para limpar os dados recuperados de um banco de dados ou de um formulário HTML, geralmente é chamado de escape de dados.
*/
Campo nome: Zak's Derick's

Escaped string: Zak\'s and Derick\'s Laptop

 Assim o banco de dados vai entender que é um caractere especial, não causando problema ao colocar a aspa simples, evitando o SQL Inject.

// pega e filtra os valores  do post
$username = (isset($_POST['username'])) ? trim($_POST['username']) : '';


$username = stripslashes($username);
$username = mysql_real_escape_string($username);



Outra forma seria remover os caracteres especiais criando uma lista negra, geralmente é chamado de black list.
 
<?php

 function anti_injection($sql) {


 // Remove palavras suspeitas de injection.

$sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"), "", $sql);

//Remove espaços vazios.
        $sql = trim($sql);
 

//Remove tags HTML e PHP.
       $sql = strip_tags($sql);
 

//Adiciona barras invertidas à uma string.

        $sql = addslashes($sql);

        return $sql;


    }


    $id = anti_injection($_GET['id']);


?>


Outro mais simples:
http://codigofonte.uol.com.br/codigo/php/seguranca/remover-caracteres-indesejados-e-evitar-a-sql-injection


Outra forma seria permitir somente os dados que eu quero receber, geralmente é chamado de white list.

$input = "' or 1='1";

$input = strip_tags($input); // retirar tags php

$output = eregi_replace("[^a-z0-9ã-õá-úà-úãõâ-ûç,.;]", '', $input);

echo $output;
 
Obs: - Não retirar palavras reservadas do SQL: SELECT, UPDATE, etc. 
 
Outro exemplo mais simples:
 
function checa($string)
{
 $string = preg_match("/^[0-9A-z]*$/i", $string);
 return $string;
} 
 
Dica para os testadores, insira os caracteres abaixo nos campos de entrada, 
para analisar o erro que vai gerar.
* \\\\ ' & ¨% $ # ( ) { [ } ] / ^~`´º 
 
 
Boa leitura:
apresentacaosegurancaphp.pdf 
 

Realizando um conexão com MySql por Python

Tive a necessidade de criar um Report Online, agora alimentar através de uma aplicação desktop, primeiro passo criar a conexão a Aplicação com o Servidor de Banco de Dados.


#!/usr/bin/python
# Biblioteca python que deve ser instalada
# http://sourceforge.net/projects/mysql-python/
import MySQLdb

db1 = MySQLdb.connect('servidor_endereco', 'nome_usuario', 'senha','nome_banco')
cursor = db1.cursor()
sql = 'SELECT * FROM tb_report WHERE 1'
cursor.execute(sql)
rows = cursor.fetchall()

#Imprime as linhas da tabela.
for row in rows:
        print row
       
cursor.close()


-> No caso de tentar realizar uma conexão remota local para servidor, tem a necessidade de configurar o servidor primeiro, leia o link:
http://marcosvreis.wordpress.com/2012/01/30/habilitando-conexo-remota-no-mysql-server/

sábado, 16 de fevereiro de 2013

Processo de Teste com TestLink + Scrum + Bugzilla



Ultimamente tive a necessidade de trabalhar com processo de teste com metodologia ágil, tive que montar uma apresentação do processo de teste com testlik + scrum + Bugzilla, segue abaixo o link da apresentação para quem quiser conhecer mais sobre teste.

Recently I needed to work with the testing process with agile methodology, I had to mount a presentation of the testing process with Testlik + Scrum + Bugzilla, below is the link of the presentation for anyone wanting to know more about the test.


sexta-feira, 18 de janeiro de 2013

Comandos Linux Uteis




Dar Permissão em Pasta e Arquivo:

Sudo chmod [opções] modo[,modo] arquivo1 [arquivo2 ...]

Permissão total:

chmod 777 + (nome do arquivo ou pasta)
 ex. chmod 777 teste.xls

Outra forma fácil no ubuntu é

Passos:
1.Selecionar um arquivo
2. Clicar no botão direito
3. Selecionar a opção propriedades
4. Selecione a aba permissões
5. Mude as permissões como queira.




Numerical permissions
# Permission rwx
7 full 111
6 read and write 110
5 read and execute 101
4 read only 100
3 write and execute 011
2 write only 010
1 execute only 001
0 none 000


Sabe mais:
http://pt.wikipedia.org/wiki/Chmod
http://en.wikipedia.org/wiki/Chmod



 Instalar SNMP - protocolo SNMP (do inglês Simple Network Management Protocol - Protocolo Simples de Gerência de Rede.

sudo apt-get install snmp