Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] exec ping jak zabezpieczyc
icetab
post
Post #1





Grupa: Zarejestrowani
Postów: 226
Pomógł: 3
Dołączył: 3.04.2007

Ostrzeżenie: (50%)
XXX--


jak zabezpieczyc ten skrypt zeby tylko mozna bylo podawac ip a nie ktos poda

122.122.122.122;ls -la

i ma wylistowane pliki :/

Ten post edytował icetab 5.06.2008, 00:26:16
Go to the top of the page
+Quote Post
sniezny_wilk
post
Post #2





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Stosuj wyrażenia regularne i odpowiednie regułki.
Go to the top of the page
+Quote Post
webdice
post
Post #3


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Przeczytaj sobie to.
Go to the top of the page
+Quote Post
sniezny_wilk
post
Post #4





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Cytat(icetab @ 4.06.2008, 22:53:57 ) *
nie zrozumialem


A wiesz co to są wyrażenia regularne ? Jeśli nie to przede wszystkim poczytaj o tym w google, bo to jest zagadnienie pojawiające się w praktycznie każdym języku programowania, a regułki wyglądają tak samo. Przykładem wyrażeń regularnych w PHP jest preg_ match" title="Zobacz w manualu PHP" target="_manual. Cała masa informacji znajduje się w google i manualu.

EDIT: @webdicepl, ubiegłeś mnie o kilka sekund (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował sniezny_wilk 4.06.2008, 23:59:33
Go to the top of the page
+Quote Post
sniezny_wilk
post
Post #5





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Cytat(icetab @ 4.06.2008, 22:59:18 ) *
a jak dodac polskie litery i wszystkie znaki specjalne ?


A po co Tobie to przy sprawdzeniu IP ? wystarczą reguły [0-9] i \. a jak masz tego użyć to sam pomyśl.

Ten post edytował sniezny_wilk 5.06.2008, 00:02:37
Go to the top of the page
+Quote Post
webdice
post
Post #6


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




a Co ma REQUEST_URI do adresu IP?
Go to the top of the page
+Quote Post
webdice
post
Post #7


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Z takim podejściem do nauki proponuje Ci żeby znalazł sobie inne zajęcie niż programowanie.

Kod
<?php
preg_match ('#^\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}$#', $ip)
?>


P.S. Słyszałeś kiedyś o znakach interpunkcyjnych?

EDIT: Forum ucięło backslashe, poprawiłem.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


  1. <?php
  2. preg_match ('#^d{1,3}.d{1,3}.d{1,3}.d{1,3}$#', $ipek) // co jest w $ipek? gdzie jest srednik? czemu nie sprawdzasz co zwraca preg_match?
  3. ?>

Programowanie nie polega na zapamietywaniu i odtwarzaniu wiedzy, rozwiazan, tylko na wymyslaniu ich, bo nie wszystko [a ledwie, powiedzmy, 5% rzeczy juz bylo, i widziales je]


-------
edit: widze ze post icetaba zniknal:

Cytat
naukcz czyni mistrzala ale pierw ktos musi pokazac pomoc a pozniej sie zapamieta

zrobilem tak

Kod PHP
  1. <?php
  2. preg_match ('#^d{1,3}.d{1,3}.d{1,3}.d{1,3}$#', $ipek)
  3. $ipek = $_GET['ipek'];
  4. exec('ping '.$ipek, $pok);
  5. echo $pok[1];
  6. ?>




i gdy podaje ip ip.php?ipek=127.0.0.1

to pokazuje sie pusta strona zamiast pingu :/


Ten post edytował dr_bonzo 5.06.2008, 00:30:19
Go to the top of the page
+Quote Post
sniezny_wilk
post
Post #9





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Cytat(icetab @ 4.06.2008, 23:14:15 ) *
bo przez GET podaje ip to ma tylko brac cyfry nie wiem jak to za bardzo zrobic :/


Wybacz, ale niektóre Twoje wypowiedzi i posty są irytujące i emanują niechęcią do google i manuala, tyle mojego offtop'u.

Pobierasz sobie GET'em dane, potem puszczasz je przez preg_match, który zwraca true jak wyrażenie pasuje do Twojej reguł. Tworzysz odpowiednią regułę i sprawdzasz czy wyrażenie do niej pasuje.
Go to the top of the page
+Quote Post
webdice
post
Post #10


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Przed chwilą usunąłeś swojego ostatniego posta z kodem. Brakowało Ci w instrukcji warunkowej klamer. Proponuję Ci naukę PHP od postaw, naprawdę.
Go to the top of the page
+Quote Post
webdice
post
Post #11


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




  1. <?php
  2. preg_match ('#^d{1,3}.d{1,3}.d{1,3}.d{1,3}$#', $ipek)
  3. $ipek = $_GET['ipek'];
  4. exec('ping '.$ipek, $pok);
  5. echo $pok[1];
  6. ?>


1. W funkcji preg_match" title="Zobacz w manualu PHP" target="_manual używasz jako argumentu zmiennej ipek, ale zastanów się przez chwilę czy ona istnieje? Deklarujesz ją dopiero później.

2. Jak słusznie zauważył ~dr_bozno brakuje Ci średnika.

3. Funkcja preg_match" title="Zobacz w manualu PHP" target="_manual zostanie wywołana, a dalsza część kodu wykona się tak samo jakby jej nie było.

Programowanie polega na analitycznym myśleniu, jeśli sam nie możesz sobie poradzić z takimi problemami, to programowanie widocznie nie jest dla Ciebie, i nie obrażaj się tu na mnie za to co pisze.

Poprawny kod:

  1. <?php
  2. $ipek = $_GET['ipek'];
  3.  
  4. if (preg_match ('#^d{1,3}.d{1,3}.d{1,3}.d{1,3}$#', $ipek))
  5. {
  6. exec ('ping '.$ipek, $pok);
  7. echo $pok[1];
  8. }
  9. else
  10. {
  11. echo 'Nieprawidłowe IP';
  12. }
  13. ?>
Go to the top of the page
+Quote Post
kszychu
post
Post #12





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


icetab: nic tu nikomu nie ściska, poza zastraszająco niskim poziomem Twoich pytań. Trochę samodzielności.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 23:05