..:: MX Studio Fóruns ::..: QSS [ Query String Segura ] - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

QSS [ Query String Segura ] Evite contra tempos.

#1 User is offline   Leonardo_C_P_ 

  • Group: Membros
  • Posts: 379
  • Joined: 09-May 06

Posted 11 November 2006 - 06:35 PM

E ae pessoal, já vi muitas pessoas com problemas nas suas query strings, tendo que criar várias e várias if's ou case's para usar uma query_string que evitasse os mal feitores de passarem virús para o servidor.

Pensando nisso, desenvolvi a função QSS(). Muito simples e eficaz, ela só inseri no seu servidor oque o usuário deseja. Sendo assim, você não vai precisar criar vários arquivos com o mesmo layout deixando pesado o seu site. Basta ter a sua QSS() lá, simples e segura.


A função QSS:
PHP
<?PHP
// --------------------------------------------------------------------------------------------------
// Função QSS(Query String Segura)
// --------------------------------------------------------------------------------------------------
// :::::::::::::::::::::::::::::::::::  DESENVOLVIDA POR  :::::::::::::::::::::::::::::::::::::::::::
// Leonardo C. Pereira (Dante) [ www.leonardopereira.pt.to ] [ dantetekanem@hotmail.com ]
// --------------------------------------------------------------------------------------------------
// COMO FUNCIONA ////////////////////////////////////////////////////////////////////////////////////
// Inclui outras páginas dentro do seu website, obedecendo as seguintes regras.
// Que sejam das extensões permitidas por você, e que estejam no mesmo servidor que o sistema.
/////////////////////////////////////////////////////////////////////////////////////////////////////
// --------------------------------------------------------------------------------------------------
// MODO DE USAR /////////////////////////////////////////////////////////////////////////////////////
// QSS('pagina');
// Inclui os arquivos que vierem dentro da váriavel requisitada 'pagina'.
// Se for por exemplo o link(www.meusite.com/index.php?pagina=teste.php)
// Será pego o conteudo teste.php
/////////////////////////////////////////////////////////////////////////////////////////////////////
// --------------------------------------------------------------------------------------------------
// AVISOS ///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////
// Necessário PHP 4.x.x ou superior para funcionar.
// Caso for usar está função em seu website, por favor, deixe os devidos créditos ao autor(eu).
// --------------------------------------------------------------------------------------------------
function QSS($caminho){
$extP = array('php','html','htm','js','txt'); // As extensões permitidas para visualização
$qs $_REQUEST[$caminho];
$p1 explode("?",$qs);
$ar explode(".",$p1[0]);
if(isset(
$qs)){
if(
in_array($ar[sizeof($ar)-1],$extP) AND &#33;eregi("http://|www.|ftp://",$p1[0]) AND file_exists($p1[0])){
include($qs);
}else{
// MENSAGEM DE ERRO DO SISTEMA PARA PÁGINAS INVÁLIDAS OU INEXISTENTES ///////////////////////////////
print('Erro, o caminho que você está tentando visualizar é dito como inseguro e perigoso para o nosso
sistema ou o arquivo é inexistente, por favor, tente outro caminho.<br/>
Arquivo tentando ser visualizado: <b>'
.$qs.'</b><br/>O formato <b>'.$ar[sizeof($ar)-1].'</b>');
if(
in_array($ar[sizeof($ar)-1],$extP)){
print(
' é permitido pelo nosso sistema.<br/>');
}else{
foreach(
$extP as $array){$ext[]='<b>.'.$array.'</b>';}
print(
' não é permitido pelo nosso sistema;<br/>Formatos permitidos: ('.implode(", ",$ext).');<br/>');
}
if(
file_exists($qs)){
print(
'O arquivo <b>'.$qs.'</b> existe no nosso servidor.');
}else{
print(
'O arquivo <b>'.$qs.'</b> não existe no nosso servidor.');
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
}
}
// TESTANDO A FUNÇÃO NO SISTEMA, CHAMANDO ELA PELA QUERY STRING 'p' /////////////////////////////////
QSS('p');
/////////////////////////////////////////////////////////////////////////////////////////////////////
?>



Estudem ela ! Abraços !
0

#2 User is offline   RaulOlhoVivo 

  • Group: Membros
  • Posts: 4
  • Joined: 19-October 06

Posted 11 November 2006 - 06:47 PM

kc... kara vc nun para d inventa coisa ....

mais ae.. tah daora o sitesma ae parabens..


flws
0

#3 User is offline   Kikitten 

  • Group: Membros
  • Posts: 22
  • Joined: 10-December 06

Posted 10 February 2007 - 03:28 AM

Desculpa mas não entendi 2 coisas ^^
Não preciso mexer em nada nesse código?
E como ficariam os links?

Agradeço se puder tirar essa duvida ^^
0

#4 User is offline   Leonardo_C_P_ 

  • Group: Membros
  • Posts: 379
  • Joined: 09-May 06

Posted 10 February 2007 - 07:24 PM

O script está comentando como vai ficar seus links e onde deve alterar, leia ele novamente.


Abraços.
0

#5 User is offline   Eder Rodrigues 

  • Group: Membros
  • Posts: 2
  • Joined: 22-August 07

Posted 22 August 2007 - 10:52 PM

Opa!!!

Onde é que eu coloco esse codigo?

quando eu coloco ele da esse erro

Parse error: parse error in c:\arquivos de programas\easyphp1-8\www\teste\novo\index.php on line 299

alguem pode me ajudar?
0

#6 User is offline   Leonardo_C_P_ 

  • Group: Membros
  • Posts: 379
  • Joined: 09-May 06

Posted 23 August 2007 - 09:30 AM

Substitua:
QUOTE

if(in_array($ar[sizeof($ar)-1],$extP) AND & #33;eregi("http://|www.|ftp://",$p1[0]) AND file_exists($p1[0])){

Por:
if(in_array($ar[sizeof($ar)-1],$extP) AND !eregi("http://|www.|ftp://",$p1[0]) AND file_exists($p1[0])){
0

#7 User is offline   Member 

  • Group: Membros
  • Posts: 6
  • Joined: 12-September 07

Posted 12 September 2007 - 05:56 PM

Gostaria de sugerir uma variação (e pedir pra você, Leonardo, nos responder se iria funcionar mesmo!).
Daria pra gente colocar um conjunto de queries-strings permitidas (num array ou num BD) e aí toda vez
que vier uma query pela URL a função checa se pertence as palavras permitidas, e se não retorna uma
mensagem de erro. Isso funcionaria? É tão seguro quanto a sua maneira?

Flws!
0

#8 User is offline   Leonardo_C_P_ 

  • Group: Membros
  • Posts: 379
  • Joined: 09-May 06

Posted 21 September 2007 - 09:54 AM

Funciona sim e é o modo que atualmente eu uso. =)

Algo como isto:

CÓDIGO
<?PHP

$paginas = array(
'' => 'homepage.php',
'noticias' => 'noticias.php',
'reviews' => 'reviews.php',
'galeria' => 'galeria/index.php',
'download' => 'download.php'
);

if(file_exists($paginas[$_GET['page']])){
include($paginas[$_GET['page']]);
}

?>


O que isso faz é simplesmente incluir uma página de uma array, ainda tem outras opções que possibilitam até a criação de uma trilha de páginas, mas ai é bem mais avançado.

Nota: Trilha de páginas, ex.: Home Page > Downloads > Scripts > QSS
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




2 User(s) are reading this topic
0 membro(s), 2 visitante(s) e 0 membros anônimo(s)