Páginas

terça-feira, 14 de agosto de 2012

PHP Função Anti SQL Injection

Uma função básica porém muito importante para que vai fazer um trabalho com PHP envolvendo Banco de Dados.
Um pouco de Conceito sobre a técnica de SQL Injection:
Injeção de SQL, mais conhecida através do termo americano SQL Injection, é um tipo de ameaça de segurança que se aproveita de falhas em sistemas que interagem com bases de dados via SQL. A injeção de SQL ocorre quando o atacante consegue inserir uma série de instruções SQL dentro de uma consulta (query) através da manipulação das entrada de dados de uma aplicação.
Fonte: http://pt.wikipedia.org/wiki/Injeção_de_SQL
Agora vamos ao mais importante, o código:

 function noSqlInjection($string){
  
        $string = trim($string);
        $string =str_replace("'","",$string);//aqui retira aspas simples <'>
        $string =str_replace("\\","",$string);//aqui retira barra invertida<\\>
        $string =str_replace("UNION","",$string);//aqui retiro  o comando UNION <UNION>
      
        $banlist = array(" insert", " select", " update", " delete", " distinct", " having", " truncate", "replace"," handler", " like", " as ", "or ", "procedure ", " limit", "order by", "group by", " asc", " desc","'","union all", "=", "'", "(", ")", "<", ">", " update", "-shutdown",  "--", "'", "#", "$", "%", "¨", "&", "'or'1'='1'", "--", " insert", " drop", "xp_", "*", " and");
        // ---------------------------------------------
        if(eregi("[a-zA-Z0-9]+", $string)){
                $string = trim(str_replace($banlist,'', strtolower($string)));
        }
      
        return $string;
      
    }//END function noSqlInjection($string)

quinta-feira, 9 de agosto de 2012

Lista de Componentes Joomla


Segue abaixo uma lista de alguns bons componentes para joomla!

ChronoForms – Formulário de Contatos funciona nas versões 1.5, 1.6, 1.7, 2.5 http://extensions.joomla.org/extensions ... 9mb3JtIjt9

------------------------------------------------------------------------------------------------------------

CkForms - Formulário de Contatos funciona na versão 1.5 http://extensions.joomla.org/extensions ... Zvcm1zIjt9

-----------------------------------------------------------------------------------------------------------
JCE Editor – Para mim o melhor editor que existe no joomla, aconselho que instale junto o plugin JCE Media Box funciona nas versões 1.5, 1.7, 2.5 http://www.joomlacontenteditor.net/downloads

------------------------------------------------------------------------------------------------------------

ccNewsletter – Newsletter na minha opinião o componente mais simples de newsletter que existe para joomla. http://extensions.joomla.org/extensions ... V0dGVyIjt9

------------------------------------------------------------------------------------------------------------

MorfeoShow – Galeria de Fotos funciona na versão 1.5 http://extensions.joomla.org/extensions ... sions/7697

------------------------------------------------------------------------------------------------------------

Zoo – Componente para criação de Blogs Funciona nas versões 1.5 e 2.5 http://www.yootheme.com/zoo/downloads/d ... out=single

------------------------------------------------------------------------------------------------------------

Virtuemart – Componente para Loja Virtual funciona nas versões 1.5, 1.7, 2.5 http://virtuemart.net/downloads

------------------------------------------------------------------------------------------------------------

YoutubeGallery – Componente para galeria de vídeos funciona nas versões 1.5, 1.6, 1.7, 2.5 http://extensions.joomla.org/extensions ... xsZXJ5Ijt9

------------------------------------------------------------------------------------------------------------

Community Builder – Componente para criar comunidades tipo Orkut funciona nas versões 1.5, 1.6, 1.7, 2.5 http://extensions.joomla.org/extensions ... nities/210

------------------------------------------------------------------------------------------------------------

Extplorer – Você pode usá-lo para acessar e modificar os arquivos e diretórios em seu servidor através de acesso a arquivos FTP diretamente pelo seu joomla funciona nas versões 1.5, 1.6, 1.7, 2.5 http://extensions.joomla.org/extensions ... ZXIiO30%3D

------------------------------------------------------------------------------------------------------------

Akeeba – Componente para backup do seu joomla, com ele você pode transportar com muito mais segurança seu site, funciona nas versões 1.5, 1.6, 1.7, 2.5 http://extensions.joomla.org/extensions ... YmEiO30%3D

------------------------------------------------------------------------------------------------------------

Swmenufree – ferramenta para facilitar o desenvolvimento de menus e submenus, funciona nas versões 1.5, 1.6, 1.7, 2.5 http://extensions.joomla.org/extensions ... I7fQ%3D%3D

Medidas de Segurança na programação Joomla

Image Antes de começar a programar componentes, módulos ou mambots/plugins para o Joomla, é bom conhecer algumas precauções que devem ser tomadas para evitar que seu site se torne um alvo fácil para crackers que adoram explorar falhas de segurança.

SAMBA - Criando uma área publica para seus usuarios

Veja a baixo a minha configuração para este tipo de area: 

Estou utilizando o Ubuntu Server 12 para este tutorial

Primeiro edite o arquivo do servidor SAMBA  - vi /etc/samba/smb.conf

Na última linha do arquivo smb.con adicione as linhas abaixo que estao em negrito.


[publico]
        comment = Publico
        path = /home/publico
        force directory mode = 777
        directory mode = 777
        force create mode = 777
        create mode = 777
        writeable = yes
        veto files = /*.mp3/*.wmv/*.wma/*.ogg/*.pif/*.scr/*.cmd/*.bas/*.bat/*.inf/*.exe/*.src/*.avi/*.mpeg


O "veto files" serve para dizer ao servidor para não aceitar a gravação dos arquivos com determinadas extensões, pode ser qualquer extensão que você colocar, conforme exemplo acima.


OBS: Não esqueca de criar a pasta que você queira compartilhar, exemplo :

mkdir /home/publico
chmod 777 /home/publico -R

quarta-feira, 1 de agosto de 2012

JPATH e $_SERVER - Como obter o caminho

Caso queira descobrir de forma rápida qual variável quer usar para achar o caminho dos seus arquivos, pode incluir os códigos abaixo:



01.echo 'Joomla JPATH';
02.echo "<table border=\"1\">";
03.echo "<tr><td>" . DS ."</td><td>DS</td></tr>";
04.echo "<tr><td>" . JPATH_ADMINISTRATOR ."</td><td>JPATH_ADMINISTRATOR</td></tr>";
05.echo "<tr><td>" . JPATH_BASE ."</td><td>JPATH_BASE</td></tr>";
06.echo "<tr><td>" . JPATH_CACHE ."</td><td>JPATH_CACHE</td></tr>";
07.echo "<tr><td>" . JPATH_COMPONENT ."</td><td>JPATH_COMPONENT</td></tr>";
08.echo "<tr><td>" . JPATH_COMPONENT_ADMINISTRATOR ."</td><td>JPATH_COMPONENT_ADMINISTRATOR</td></tr>";
09.echo "<tr><td>" . JPATH_COMPONENT_SITE ."</td><td>JPATH_COMPONENT_SITE</td></tr>";
10.echo "<tr><td>" . JPATH_CONFIGURATION ."</td><td>JPATH_CONFIGURATION</td></tr>";
11.echo "<tr><td>" . JPATH_INSTALLATION ."</td><td>JPATH_INSTALLATION</td></tr>";
12.echo "<tr><td>" . JPATH_LIBRARIES ."</td><td>JPATH_LIBRARIES</td></tr>";
13.echo "<tr><td>" . JPATH_PLUGINS ."</td><td>JPATH_PLUGINS</td></tr>";
14.echo "<tr><td>" . JPATH_ROOT ."</td><td>JPATH_ROOT</td></tr>";
15.echo "<tr><td>" . JPATH_SITE ."</td><td>JPATH_SITE</td></tr>";
16.echo "<tr><td>" . JPATH_THEMES ."</td><td>JPATH_THEMES</td></tr>";
17.echo "<tr><td>" . JPATH_XMLRPC ."</td><td>JPATH_XMLRPC</td></tr>";
18.echo "</table>";
19.  
20.echo 'PHP $_SERVER';
21.echo ' <!-- By jeffwk on http://www.php.net/manual/en/reserved.variables.server.php#91080 -->';
22.echo "<table border=\"1\">";
23.echo "<tr><td>" .$_SERVER['argv'] ."</td><td>argv</td></tr>";
24.echo "<tr><td>" .$_SERVER['argc'] ."</td><td>argc</td></tr>";
25.echo "<tr><td>" .$_SERVER['GATEWAY_INTERFACE'] ."</td><td>GATEWAY_INTERFACE</td></tr>";
26.echo "<tr><td>" .$_SERVER['SERVER_ADDR'] ."</td><td>SERVER_ADDR</td></tr>";
27.echo "<tr><td>" .$_SERVER['SERVER_NAME'] ."</td><td>SERVER_NAME</td></tr>";
28.echo "<tr><td>" .$_SERVER['SERVER_SOFTWARE'] ."</td><td>SERVER_SOFTWARE</td></tr>";
29.echo "<tr><td>" .$_SERVER['SERVER_PROTOCOL'] ."</td><td>SERVER_PROTOCOL</td></tr>";
30.echo "<tr><td>" .$_SERVER['REQUEST_METHOD'] ."</td><td>REQUEST_METHOD</td></tr>";
31.echo "<tr><td>" .$_SERVER['REQUEST_TIME'] ."</td><td>REQUEST_TIME</td></tr>";
32.echo "<tr><td>" .$_SERVER['QUERY_STRING'] ."</td><td>QUERY_STRING</td></tr>";
33.echo "<tr><td>" .$_SERVER['DOCUMENT_ROOT'] ."</td><td>DOCUMENT_ROOT</td></tr>";
34.echo "<tr><td>" .$_SERVER['HTTP_ACCEPT'] ."</td><td>HTTP_ACCEPT</td></tr>";
35.echo "<tr><td>" .$_SERVER['HTTP_ACCEPT_CHARSET'] ."</td><td>HTTP_ACCEPT_CHARSET</td></tr>";
36.echo "<tr><td>" .$_SERVER['HTTP_ACCEPT_ENCODING'] ."</td><td>HTTP_ACCEPT_ENCODING</td></tr>";
37.echo "<tr><td>" .$_SERVER['HTTP_ACCEPT_LANGUAGE'] ."</td><td>HTTP_ACCEPT_LANGUAGE</td></tr>";
38.echo "<tr><td>" .$_SERVER['HTTP_CONNECTION'] ."</td><td>HTTP_CONNECTION</td></tr>";
39.echo "<tr><td>" .$_SERVER['HTTP_HOST'] ."</td><td>HTTP_HOST</td></tr>";
40.echo "<tr><td>" .$_SERVER['HTTP_REFERER'] ."</td><td>HTTP_REFERER</td></tr>";
41.echo "<tr><td>" .$_SERVER['HTTP_USER_AGENT'] ."</td><td>HTTP_USER_AGENT</td></tr>";
42.echo "<tr><td>" .$_SERVER['HTTPS'] ."</td><td>HTTPS</td></tr>";
43.echo "<tr><td>" .$_SERVER['REMOTE_ADDR'] ."</td><td>REMOTE_ADDR</td></tr>";
44.echo "<tr><td>" .$_SERVER['REMOTE_HOST'] ."</td><td>REMOTE_HOST</td></tr>";
45.echo "<tr><td>" .$_SERVER['REMOTE_PORT'] ."</td><td>REMOTE_PORT</td></tr>";
46.echo "<tr><td>" .$_SERVER['SCRIPT_FILENAME'] ."</td><td>SCRIPT_FILENAME</td></tr>";
47.echo "<tr><td>" .$_SERVER['SERVER_ADMIN'] ."</td><td>SERVER_ADMIN</td></tr>";
48.echo "<tr><td>" .$_SERVER['SERVER_PORT'] ."</td><td>SERVER_PORT</td></tr>";
49.echo "<tr><td>" .$_SERVER['SERVER_SIGNATURE'] ."</td><td>SERVER_SIGNATURE</td></tr>";
50.echo "<tr><td>" .$_SERVER['PATH_TRANSLATED'] ."</td><td>PATH_TRANSLATED</td></tr>";
51.echo "<tr><td>" .$_SERVER['SCRIPT_NAME'] ."</td><td>SCRIPT_NAME</td></tr>";
52.echo "<tr><td>" .$_SERVER['REQUEST_URI'] ."</td><td>REQUEST_URI</td></tr>";
53.echo "<tr><td>" .$_SERVER['PHP_AUTH_DIGEST'] ."</td><td>PHP_AUTH_DIGEST</td></tr>";
54.echo "<tr><td>" .$_SERVER['PHP_AUTH_USER'] ."</td><td>PHP_AUTH_USER</td></tr>";
55.echo "<tr><td>" .$_SERVER['PHP_AUTH_PW'] ."</td><td>PHP_AUTH_PW</td></tr>";
56.echo "<tr><td>" .$_SERVER['AUTH_TYPE'] ."</td><td>AUTH_TYPE</td></tr>";
57.echo "</table>";
E obter algo semelhante a isto:
Joomla JPATH and PHP $_SERVER

Adicionando uma tarefa agendada no cron do VMware ESXi 5

Isto explica como adicionar uma tarefa agendada para o VMware, de tal forma que ele ainda estará lá após reinicializações.

Depois de ter ativado o acesso ssh para o seu ESXi 5, ssh como root.

Em primeiro lugar, adicione o cron job para o crontab de root:


  1. Edite o arquivo vi /var/spool/cron/crontabs/root
  2. Adicione a linha (tudo em uma linha)
    59  3    *   *   *   /backupScripts/./backupVMs.sh' >> /var/spool/cron/crontabs/root >  camihdo/do/seu/arquivo_de_log 2>&1
  3. Execute o seguinte comando "cat /var/run/crond.pid"
    Isso vai imprimir o número do processo em execução crond, exemplo: 12345
  4. Execute o comando "kill 12345"
    onde "12345deve ser substituído com a saída número pelo comando anterior

Agora, adicione um comando para /etc/rc.local para re-gerar o agendamento na cron quando ESXi 5 for reiniciado.

  1. Edite o arquivo /etc/rc.local, usando este comando "vi /etc/rc.local".
  2. No final do arquivo, adicionar 3 linhas conforme abaixo. O primeiro comando "mata" o processo da cron, o segundo adiciona o cron job novo para o arquivo crontab de root, o último reinicia a cron:
    /bin/kill $(cat /var/run/crond.pid)
    /bin/echo '59  3    *   *   *   /backupScripts/./backupVMs.sh' >> /var/spool/cron/crontabs/root >  camihdo/do/seu/arquivo_de_log 2>&1' >> /var/spool/cron/crontabs/root
    /bin/busybox crond
  3. Salve e saia do editor (Pressione a tecla "Esc" depois ": wq" e pressione "Enter" no vi)
OBS: Toda vez que você alterar o agendamento da cron, lembre-se de atualizar o /etc/rc.local.


Obrigado espero ter ajudado.