Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Zilele emailului din gospodaria n...

Best gaming laptop?

Humane (2024)

Recomandare casti 100-150 lei
 Schimbare bec far VW Touran 1T3

Plata impozit PF

Ce parere aveti de viteza/ modul ...

Love Lies Bleeding - 2024
 Cum sterg mails din Promotions

Vanzare cumparare fara transfer b...

Receptie ciudata, in functie de t...

Donez medicamente renale ptr pisica
 Ce componenta e asta si ce ziceti...

Dupa 20 ani de facultate, am uita...

Mobile.de ofera imprumut de bani ...

problema test grila
 

substr($link,5)

- - - - -
  • Please log in to reply
25 replies to this topic

#1
alecssid

alecssid

    New Member

  • Grup: Members
  • Posts: 22
  • Înscris: 01.09.2007
Salutari. Am urmatorul cod in functions.php:
<?php
$link = $_SERVER['REQUEST_URI'] ;
$header_link = substr($link,5) ;
?>

E de ajuns sa includ functions.php la inceputul paginii ca din url sa substraga 5 caractere?
Originalul ar fi www.mysite.com/_art/articol si as vrea sa ramana doar www.mysite.com/articol.
Evident articol.php se afla in folderul ''_art''.

Edited by alecssid, 02 November 2012 - 13:49.


#2
umilu

umilu

    Member

  • Grup: Members
  • Posts: 342
  • Înscris: 04.02.2012
cel mai bine este sa incerci,  adica sa faci un include_once ('./function.php') si sa vezi ce iasaa.
dar nu faci bine ce faci tu acolo, eu iti sugerez sa folosesti preg_replace in loc de substring

ia ruleaza in cli urmatorul script:
$str = 'www.mysite.com/_art/articol';
$rezultat = preg_replace('/_art\//','',$str);
echo $rezultat;

Este exact ce vrei tu

Este si o arie de incepatori , pana te pui la punct cu chestiile de baza poate e mai bine sa postezi pe-acolo.

Edited by umilu, 02 November 2012 - 14:33.


#3
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006
E o abordare anapoda. Articolul respectiv oricum îl iei din baza de date, nu? Deci de ce să te bazezi pe inputul userului, introducând şi găuri de securitate, în loc să generezi tu frumuşel link-ul programatic, curat, fără vulnerabilităţi gen XSS?

#4
alecssid

alecssid

    New Member

  • Grup: Members
  • Posts: 22
  • Înscris: 01.09.2007
echo imi afiseaza exact ce ar trebui. dar cum fac asta sa se intample in url? sa imi schmiibe url-ul?

View PostOriginalCopy, on 02 noiembrie 2012 - 14:50, said:

E o abordare anapoda. Articolul respectiv oricum îl iei din baza de date, nu? Deci de ce să te bazezi pe inputul userului, introducând şi găuri de securitate, în loc să generezi tu frumuşel link-ul programatic, curat, fără vulnerabilităţi gen XSS?

Te cred ca e o abordare anapoda, deoarece e facuta "dupa ureche", recunosc. Articolele nu cred ca o sa fie dintr-o baza de date, ci o sa le scriu intr-un fisier separat creat manual...sau nu? Posted Image

#5
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postalecssid, on 02 noiembrie 2012 - 14:56, said:

Te cred ca e o abordare anapoda, deoarece e facuta "dupa ureche", recunosc. Articolele nu cred ca o sa fie dintr-o baza de date, ci o sa le scriu intr-un fisier separat creat manual...sau nu? Posted Image
O să scrii toate articolele într-un singur fişier? Nu fiecare într-un fişier separat?

#6
alecssid

alecssid

    New Member

  • Grup: Members
  • Posts: 22
  • Înscris: 01.09.2007

View PostOriginalCopy, on 02 noiembrie 2012 - 14:59, said:

O să scrii toate articolele într-un singur fişier? Nu fiecare într-un fişier separat?

O sa fie fiecare articol in fisiere separate, normal. articol1.php, articol2.php.....

#7
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postalecssid, on 02 noiembrie 2012 - 15:02, said:

O sa fie fiecare articol in fisiere separate, normal. articol1.php, articol2.php.....
Ei vezi, directorul tău cu articole de pe hard disk va fi "baza de date", tot aia e. "Bază de date" nu înseamnă doar MySQL. Multe lucruri pot fi văzute ca "baze de date".

Oricum, răspunsul e:

View Postalecssid, on 02 noiembrie 2012 - 13:48, said:

E de ajuns sa includ functions.php la inceputul paginii ca din url sa substraga 5 caractere?
NU.

#8
umilu

umilu

    Member

  • Grup: Members
  • Posts: 342
  • Înscris: 04.02.2012
Poti sa incerci si asa :
$str = 'www.mysite.com/_art/articol';
$ar = array(
'_art'=>'articole',
'carti' => 'carti',
'moaste'=> 'biserica/moaste',
);
$key=array_keys($ar);
foreach ($key as $k)
{
if(preg_match("/$k/",$str))
{
	 echo "wwww.mysite.com/" . $ar[$k];
}
}
am pus un $str de test, dar poti folosi foarte bine si $_SERVER[REQUEST_URI]

Edited by umilu, 02 November 2012 - 15:11.


#9
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postumilu, on 02 noiembrie 2012 - 15:11, said:

poti folosi foarte bine si $_SERVER[REQUEST_URI]
Dacă vrei să ai găuri de securitate, da, poţi să cârpeşti şi aşa.

Edited by OriginalCopy, 02 November 2012 - 15:12.


#10
umilu

umilu

    Member

  • Grup: Members
  • Posts: 342
  • Înscris: 04.02.2012
Programul tau genereaza respectivele URI, stii ca atunci cand se intorc de la client trebuie sa contina un anumit cuvant. Iti faci array-ul in functie de respectivele cuvinte cheie si generezi URI-urile acordingly.

@original

Quote

Dacă vrei să ai găuri de securitate, da, poţi să cârpeşti şi aşa.
Daca folosesti scriptul de mai sus cu $_SERVER[REQUEST_URI] ce gauri de securitate sunt ? Ori php nu este safe sa fie folosit, ori daca eu am un preg_match pe un cuvant cheie, cum poate hackerul sa imi modifice mie array-ul sau generarea URI-ului.

Multumesc

Edited by umilu, 02 November 2012 - 15:17.


#11
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postumilu, on 02 noiembrie 2012 - 15:13, said:

Daca folosesti scriptul de mai sus cu $_SERVER[REQUEST_URI] ce gauri de securitate sunt ?

Multumesc
Am scris deja.

#12
umilu

umilu

    Member

  • Grup: Members
  • Posts: 342
  • Înscris: 04.02.2012
da un exemplu daca e asa .

Edited by umilu, 02 November 2012 - 15:19.


#13
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postumilu, on 02 noiembrie 2012 - 15:18, said:

da un exemplu daca e asa .
Na d-aci 40700 de exemple: https://www.google.a...request_uri xss

#14
alecssid

alecssid

    New Member

  • Grup: Members
  • Posts: 22
  • Înscris: 01.09.2007

View PostOriginalCopy, on 02 noiembrie 2012 - 14:50, said:

E o abordare anapoda. Articolul respectiv oricum îl iei din baza de date, nu? Deci de ce să te bazezi pe inputul userului, introducând şi găuri de securitate, în loc să generezi tu frumuşel link-ul programatic, curat, fără vulnerabilităţi gen XSS?

Ai putea te rog sa imi dai un exemplu? Cum ar trebui sa fie fara vulnerabilitati?
...daca nu cer prea mult

#15
umilu

umilu

    Member

  • Grup: Members
  • Posts: 342
  • Înscris: 04.02.2012
Da-mi te rog un exemplu de url cu vulnerabilitate xls care atunci cand il trec prin preg_match imi sara mie serverul sau sa imi apara la echo.
Eu recunosc ca-s incepator, dar sa ma futa stalin daca inteleg ce puii lui zebedeu poate sa fie scris intr-un string care atunci cand dau
preg_match('/cacat/',$string);
unde eu astept 1 sau 0, in functie de care fac eu ceva care nu are nici o alta legatura cu ce e scris in string.


Ai scriptul de mai sus, esti guruPHP , te rog eu frumos, asa ca pentru cretini, un exemplu de URI care imi baga mie o vulnerabilitate la echo.
Multumiri pline de umilinta.

#16
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postalecssid, on 02 noiembrie 2012 - 15:24, said:

Ai putea te rog sa imi dai un exemplu? Cum ar trebui sa fie fara vulnerabilitati?
...daca nu cer prea mult
Eu aş face o bază de date cu articole, bază de date sub forma unui array:

$articole = array(
  'despre-mine' => array(
	'title' => 'Despre alecssid',
	'file' => 'art1.html',
  ),
  'home' => array(
	'title' => 'alecssid homepage',
	'file' => 'art2.html',
  )
//aici mai multe articole
);


şi aş trece toate cererile prin index.php (deci niciun "art1.php" direct accesibil utilizatorului).

Iar link-urile ar arăta aşa:

http://host.tld/?article=despre-mine

poţi să pui şi mod_rewrite în acţiune, dar aia e irelevant. Dacă ai face-o, ai folosi titlul articolului (salvat în "baza ta de date", şi anume array-ul) pentru friendly links.

iar pentru verificare:

if(isset($_GET['article']) && isset($articles[$_GET['article']])) {
  $article = $_GET['article'];
}
else {
  $article = 'home';
}


Iar link-ul generat programatic, cu control total:
echo 'http://host.tld/?show=',$article;

Aşa, poţi genera uşor o listă a articolelor existente, că doar le ai în "baza de date", de exemplu. Poţi să comentezi un articol, dezactivându-l, până l-ai terminat de redactat, poţi să dezactivezi accesul pe baza IP-ului, şi multe alte lucruri.

Poţi să îţi modifici site-ul într-un singur loc central, fără să stai cu grija filtrării datelor. Dacă se potriveşte cu ce ai tu în baza de date, e o cerere legitimă, dacă nu, e atac.

Dacă cineva îţi atacă site-ul, tu te mai şi chinui să filtrezi datele cu regexuri, adică încerci să faci tot posibilul să-i faci pe plac? Posted Image

Nu. Dacă detectezi un atac, îi şi banezi IP-ul, direct, fără discuţii.

Edited by OriginalCopy, 02 November 2012 - 15:42.


#17
danutz0501

danutz0501

    Member

  • Grup: Members
  • Posts: 437
  • Înscris: 22.04.2008
Faci un switch cu fiecare grupa de articole dupa articolul il introduci cu un scandir si in_array. Dar o sa ai de munca mult la curatarea.get: htmlentities trim strip_tags etc un pre_replace sa lasi doar 0-9 a-z si _ sau ce mai folosesti tu la articole.

LE: am postat in acelasi timp cu ultimele 2 raspunsuri. Draguta abordarea, dar nu e prea complexa, adica ma refer sa modifici mereu manual array-ul?

Edited by danutz0501, 02 November 2012 - 15:46.


#18
alecssid

alecssid

    New Member

  • Grup: Members
  • Posts: 22
  • Înscris: 01.09.2007
pana la urma o sa le pun intr-o baza de date, articolele
am facut un tabel in DB cu id, title si continut
si o sa le extrag pe pagina, de acolo

Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate