Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: firany-sklep.pl - Własny CMS sklepu internetowego
Forum PHP.pl > Inne > Oceny
Stron: 1, 2
joordan
Skrypt pisany w dużym pośpiechu, dla rodzinnej działalności.

Czekam na oceny. tongue.gif

firany-sklep.pl
pyro
Jakby to były lata 90-te to byłoby ok.
Spawnm
Baner paskudy. Menu się sypie na ff/ubuntu
Formularz rejestracji ma dziwne filtrowanie. Wpiszcie sobie ">lol
joordan
Cytat(Spawnm @ 23.05.2013, 21:46:50 ) *
Baner paskudy. Menu się sypie na ff/ubuntu
Formularz rejestracji ma dziwne filtrowanie. Wpiszcie sobie ">lol


Dzięki że napisałeś zaraz tam dam striptag

Wiem że baner paskudny ale musiało być te logo siła wyższa tongue.gif

sypie ci się górne menu...?



Cytat(pyro @ 23.05.2013, 21:36:54 ) *
Jakby to były lata 90-te to byłoby ok.



Rozwiń myśl prostota nie zawsze musi być zła tongue.gif
alex011251
Striptag...

Ogolnie masz wszedzie takie bledy ze gdybym widzial sens to bym ci w 5min cala stronke skasowal. Dziura na dziurze

joordan
Cytat(alex011251 @ 23.05.2013, 23:23:52 ) *
Striptag...

Ogolnie masz wszedzie takie bledy ze gdybym widzial sens to bym ci w 5min cala stronke skasowal. Dziura na dziurze


Pisz na priv co i gdzie. Ja nie widzę tych dziur...

usb2.0
no nawet 404 nie ma? ; {
joordan
Cytat(usb2.0 @ 24.05.2013, 00:27:32 ) *
no nawet 404 nie ma? ; {


Heh ciekawe jak się tam znalazłeś tongue.gif
alex011251
PS:
Jak mi piszesz PW to nie zadawaj pytan wyrwanych z kontekstu ws tylu "Choci ci o sesje? Bo skad mam wiedziec skad po co i w jakim temacie piszesz.

Cytat
Wydaje mi się że lejesz wodę i nie masz zbytnio pojęcia o czym mówisz.. Bo gdyby tak nie było pisał byś konkrety....

Kolejny z zerem Pokory



Nie powinienes tworzyc filtra nie pozwalaj na. Tylko lepiej zastosowac pozwol na ;]

Bo w tym przypadku zabraniasz na wstawianie liter ale niw filtrujesz wszystkiego

http://firany-sklep.pl/index.php?so=1&...p;kat=5&s=0

Uzyj htmlspecialchars i addshlashes

Strona podatna na Sql.injection. Wiec jak najbardziej bym mogl sie wlamac



dodam ze za testy penetracyjne sie placi
!*!
Cytat
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/firanysk/domains/firany-sklep.pl/public_html/index.php on line 820


Że też ludzie uwielbiają zdradzać swój login do panelu. To kto teraz odgadnie hasło? Czas start.

Masz coś nie tak z linkami http://firany-sklep.pl/nasza_firma_sprzeda..._do_chin-6.html

joordan
Człowiek uczy się na błędach tongue.gif

Nie odczytałem wiadomości do końca ograniczenie ilości znaków w rekordzie tablicy sql. Kto był taki mądry...? tongue.gif
klocu
Po wywołaniu takiego adresu: http://firany-sklep.pl/nasza_firma_sprzeda..._do_chin-9.html
Dostałem to: brak strony lub pruba włamania.

Może coś innego, albo chociaż poprawnego pod kątem ortografii?
A teraz coś większość podstron sypie 404.

--
A pod kątem wyglądu:
- brzydki formularz rejestracji
- w kontakcie brak mapki albo jakiegoś innego zdjęcia, które obrazuje lokalizację
- regulamin - tzn jest czy go nie ma, bo obecne zapisy w zasadzie to niczego nie precyzują
- treść, a w zasadzie jej brak
alex011251
Cytat(joordan @ 24.05.2013, 10:33:11 ) *
Człowiek uczy się na błędach tongue.gif

Nie odczytałem wiadomości do końca ograniczenie ilości znaków w rekordzie tablicy sql. Kto był taki mądry...? tongue.gif



A co do ogolnie sesji o ktorej wspomnialales. Nie mam czasu sie teraz w tymgrzebac. Ale uprzedzajc nie wiem czy dales czy nie . Ale jak by co daj session regenerate i time

@up

A wlasnie. Podsumowujac kolege wyzej.
A. Ma sie to podobac odwiedzajacym a nie tobie. Bo ty mozesz miec gust ustosunkowany jako 1% .
B. Jezeli klient juz tak chcial jego sprawa. Chyba ze to twoj pomysl
Japszczur
Wywala error 404 więc chyba już skończona ocena.
!*!
Skasowaliście mu stronę? Łobuzy.
joordan
Jak to możliwe że jest podatna na sql injection skoro w każdym wejściu do sql jest "mysql_real_escape_string"
!*!
Cytat(joordan @ 24.05.2013, 12:06:41 ) *
Jak to możliwe że jest podatna na sql injection skoro w każdym wejściu do sql jest "mysql_real_escape_string"

Temat: Walidacja danych
joordan
Cytat(!*! @ 24.05.2013, 12:00:07 ) *
Skasowaliście mu stronę? Łobuzy.


Nie, zmieniłem adres tongue.gif

Zrobiłem kopie sql i tp tongue.gif na wszelki wypadek

Macie bawcie się tongue.gif


Może mnie ktoś uświadomić

Jak ktoś zmienił wpis w sql

Przecież to jest niemożliwe ohmy.gif

Gdy ja próbuję modyfikować zapytanie przez zmienne post get nic się nie dzieje...
alex011251
hahhaha. Jak nie mozliwe?questionmark.gif Zawsze powtarzam ze programista a osoba od pentestow topokrewne tematy ale nie te same ;]
Polecam taka moja oto klase:

  1. <?php
  2. class security {
  3. function sql($value){
  4. } else {
  5. $value = mysql_real_escape_string($value);
  6. }
  7. return $value;
  8. }
  9.  
  10. function html($value) {
  11. $value = htmlspecialchars($value);
  12. return $value;
  13. }
  14.  
  15. function addsql($value) {
  16. $value = addslashes($value);
  17. return $value;
  18. }
  19.  
  20. function strip($value) {
  21. $value = stripslashes($value);
  22. return $value;
  23. }
  24.  
  25. function all($value) {
  26. $value = addslashes(htmlspecialchars($value));
  27. return $value;
  28. }
  29. }
  30. ?>


Chroni w 100% przed Sql.injection i Xss

tworzysz normalnie security.php

includujesz w pliku wywolujesz :
przykladowo jak u mnie:

  1. $dane_login = $security->all($_POST['email']);

Ogolnie nie wiem jak to piszesz ale cms najlepiej obiektowo. Bo wtedy masz pelna kontrole a strukturalnie sie pogubisz.

jak chcesz rady odnosnie jakie moga byc ataki badz jak sie dobrze przed roznymi zabezpieczyc to na pw przeslij mi gg. Bo na Sql i XSS sie nie konczy smile.gif)





///. H
Damonsson
Rozumiem, że powyższy post jest ironią?
alex011251
Cytat(Damonsson @ 24.05.2013, 11:58:36 ) *
Rozumiem, że powyższy post jest ironią?



W zadnym wypadku smile.gif)
!*!
@alex011251 - ale Ty to mu na serio polecasz, bo po odpowiedziach sądzę że robisz sobie jaja. Co zresztą tłumaczyłoby "jakość" ewentualnego "audytu" sądząc po klasie.
alex011251
Fakt dawno ja pisalem. Ale zabezpiecza jak nalezy.

Podaj mi co w tej klasie jest nie tak.
!*!
@alex011251 - wszystko. Przejdź na PDO z bindowaniem i całość Ci nie będzie potrzebna, no może poza htmlspecialchars w porywach (nie licząc walidacji).
alex011251
Dlatego napisalem ze to moja stara klasa. Zabezpiecza? : Zabezpiecza.

Kto stosuje jaka biblioteke , jaki styl tak naprawde jego sprawa.
Wazne ze zabezpiecza :PPP
!*!
Cytat(alex011251 @ 24.05.2013, 13:18:34 ) *
Dlatego napisalem ze to moja stara klasa. Zabezpiecza? : Zabezpiecza.

Kto stosuje jaka biblioteke , jaki styl tak naprawde jego sprawa.
Wazne ze zabezpiecza :PPP

Nie widzę tam nic, co by zabezpieczało dane w 100% przejrzyj link wyżej jaki podałem, jest tam odnośnik który to opisuje.
mysql_ jest na wylocie, więc trudno Ci będzie pisać w tym w przyszłości.
alex011251
Ja tam nigdy nie bylem przekonany do PDO i z tego korzystac nie zamierzam. Jak ktos chce niech korzysta.
Jak dalej nie pokazales mi przykladu w ktory bys obszedl moja klase smile.gif

Jedi stosuja PDO inni MySQLi a inni co innego, moim zdaniem PDO jest bardziej dziurawe, bo nie ma czegos do wszystkiego a jezeli jest to jest nie dopracowane, jak masz MySQLi to masz MYSQLi , a jak PDO ktoe jest do wszystkiego to wiadomo ze cos moze byc nie tak.
joordan
Cytat(alex011251 @ 24.05.2013, 12:37:59 ) *
hahhaha. Jak nie mozliwe?questionmark.gif Zawsze powtarzam ze programista a osoba od pentestow topokrewne tematy ale nie te same ;]
Polecam taka moja oto klase:

  1. <?php
  2. class security {
  3. function sql($value){
  4. } else {
  5. $value = mysql_real_escape_string($value);
  6. }
  7. return $value;
  8. }
  9.  
  10. function html($value) {
  11. $value = htmlspecialchars($value);
  12. return $value;
  13. }
  14.  
  15. function addsql($value) {
  16. $value = addslashes($value);
  17. return $value;
  18. }
  19.  
  20. function strip($value) {
  21. $value = stripslashes($value);
  22. return $value;
  23. }
  24.  
  25. function all($value) {
  26. $value = addslashes(htmlspecialchars($value));
  27. return $value;
  28. }
  29. }
  30. ?>


Chroni w 100% przed Sql.injection i Xss

tworzysz normalnie security.php

includujesz w pliku wywolujesz :
przykladowo jak u mnie:

  1. $dane_login = $security->all($_POST['email']);

Ogolnie nie wiem jak to piszesz ale cms najlepiej obiektowo. Bo wtedy masz pelna kontrole a strukturalnie sie pogubisz.

jak chcesz rady odnosnie jakie moga byc ataki badz jak sie dobrze przed roznymi zabezpieczyc to na pw przeslij mi gg. Bo na Sql i XSS sie nie konczy smile.gif)





///. H



Tak szczerze to pisałem bez prawie żadnych include typu header footter. Jedynej klasy jakiej użyłem to phpmail.

Rozumiem że jednym z moich problemów jest użycie srip_tag zamiast addslashes...?

Czy addslashes to wystarczające zabezpieczenie przed xss...?

Aktualnie czytam o PDO
alex011251
We wszystkich polach GET_ jak i POST_ powinienes stosowac htmlspecialchars i addshlashes.
Dlatego gdyz addshlashes dodaje znaki slasha "/" do zapytan sql . A htmlspecialchars usuwa znaki typu <script> itd.


Daj se spokoj z PDO. Wiecej w tym dziur niz w durszlaku mojej babci
Damonsson
Choćby głupie z przykładu:
  1. $_POST['email'] = '123; DELETE FROM users'


choć mysql_query nie powinno przepuścić więcej niż 1 zapytania.

Nie słuchaj @alex011251, nie ma pojęcia o czym pisze.
joordan
Cytat
function html($value) {
$value = htmlspecialchars($value);
return $value;
}

function addsql($value) {
$value = addslashes($value);
return $value;
}

function strip($value) {
$value = stripslashes($value);
return $value;
}


Jest sens pisać jeszcze raz to samo żeby mniej zajmowało miejsca zmaist stripslashes($value) strip($value)...?

rozumiem że addsql nie służy do GET POST...?
alex011251
Cytat(Damonsson @ 24.05.2013, 12:46:14 ) *
Choćby głupie z przykładu:
  1. $_POST['email'] = '123; DELETE FROM users'


Nie słuchaj @alex011251, nie ma pojęcia o czym pisze.



Dlatego przed tym masz dodana klase ktora zabezpiecza przed tym . A ty pokazujesz czesc kodu usuwajac klase security.


Joordan powyzsza klasa jest na rozne przypadk rozne prywatne zastosowania. tak naprwde wystarczy ci funkcja all w moje klasie.


Nie powinno?questionmark.gif? haha. Nie no. Nie nie powinno tylko nie przepuszcza
Damonsson
Nie zabezpiecza przed tym. Po prostu wykona się tylko 1 zapytanie, zapomniałem.
joordan
Moje tematy robią furorę na tym forum tongue.gif
alex011251
Bo to takie czcze gadanie. Bo to jest lepsze a to nie. Klotnia jak windows czy linux. Zalosne.


Dziala i spelnia standardy programowania wszelakie. A skoro ktos woli PDO to jego sprawa.

Korzystaj z tej klasy. Nie wierzysz ze bezpieczna to potestuj nie wrzucal bym ci czegos czego nie jestem pewien.


Pozdrawiam
joordan
Tutaj nie powinien być addslashes zamiast stripslashes, Nierozumiem...


  1. function sql($value){
  2. } else {
  3. $value = mysql_real_escape_string($value);
  4. }
  5. return $value;
  6. }


Do sql nie powinien być zapisywany tekst w formie <P id/=/'awe/'>
A z sql wczytywany z addslashes

Zamiast htmlspecialchars nie lepiej urzyć strip_tag ...?
!*!
@joordan jak już ktoś wcześniej wspomniał, nie bierz sobie słów i kodu @alex011251 do serca, bo zwyczajnie chłopak nie wie co czyni.
joordan
Czyli:

  1.  
  2.  
  3.  
  4.  


Tak naprawdę nic nie dadzą przy zabezpieczeniach zmiennych...? Nie rozumiem to po co to komu...?

A tak na marginesie to kto mi zrobił ten dowcip w sql...?
!*!
Cytat
Tak naprawdę nic nie dadzą przy zabezpieczeniach zmiennych...? Nie rozumiem to po co to komu...?

Po coś w końcu powstały, trzeba wiedzieć jak i gdzie ich użyć a nie stosować na rympał gdzie popadnie. Odpowiedz sobie pierw na pytanie co chcesz zrobić, jakie to dane i jaka jest ich rola później.

Jak już pisałem, mysql_ wylatuje z PHP, więc im szybciej pojmiesz PDO tym lepiej. http://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO tu jest w miarę dobry opis, koniecznie stosuj bindowanie, a nie będziesz mieć tych problemów co wyżej.
alex011251
Cytat(!*! @ 24.05.2013, 16:44:06 ) *
@joordan jak już ktoś wcześniej wspomniał, nie bierz sobie słów i kodu @alex011251 do serca, bo zwyczajnie chłopak nie wie co czyni.



Nie ma sensu dyskusja z wami. Napisz moze koledze , wytlumacz bo poki co tylko uzywasz samych ogolnikow smile.gif
Ja sie juz nie mieszam bo tu kazdy pozjadal wszystkie rozumy.

ziqzaq
Cytat
"Ogolnie nie wiem jak to piszesz ale cms najlepiej obiektowo"

I ta klasa "security" to jest przykład programowania obiektowego? To już lepiej wpakować to w kilka funkcji security_*, po co w ogóle tworzyć obiekt "security"? Dla jakiejś zasady, czy po to żeby sobie metody wywoływać i nazwać OOP?
Tylko nie tłumacz już, że to stara klasa bo to jest raptem kilka linijek, które można w minutę przepisać i pokazać początkującemu porządny kod...

Cytat
"Dlatego gdyz addshlashes dodaje znaki slasha "/" do zapytan sql"

Dodaje backslashe "\"...

Cytat
"Chroni w 100% przed Sql.injection i Xss"

Chroni jak wie się co się robi. Nie wystarczy magiczna funkcja "panaceum_na_xss_i_sqli". Przykład?

  1. $s = new security;
  2. $id = $s->sql("0 OR 1=1");
  3. $sql = "SELECT `superduper_user` from `t1` where id={$id}";

Bierze później początkujący taką magiczną funkcję na wszelkie SQLI i XSS i robią się jaja bo nie pomyśli, że $id to powinien być int i przydałoby się to zwalidować i przefiltrować pod tym kątem (choćby rzutowanie lub FILTER_SANITIZE_NUMBER_INT).
joordan
Cytat(ziqzaq @ 24.05.2013, 17:44:08 ) *
I ta klasa "security" to jest przykład programowania obiektowego? To już lepiej wpakować to w kilka funkcji security_*, po co w ogóle tworzyć obiekt "security"? Dla jakiejś zasady, czy po to żeby sobie metody wywoływać i nazwać OOP?
Tylko nie tłumacz już, że to stara klasa bo to jest raptem kilka linijek, które można w minutę przepisać i pokazać początkującemu porządny kod...


Dodaje backslashe "\"...


Chroni jak wie się co się robi. Nie wystarczy magiczna funkcja "panaceum_na_xss_i_sqli". Przykład?

  1. $s = new security;
  2. $id = $s->sql("0 OR 1=1");
  3. $sql = "SELECT `superduper_user` from `t1` where id={$id}";

Bierze później początkujący taką magiczną funkcję na wszelkie SQLI i XSS i robią się jaja bo nie pomyśli, że $id to powinien być int i przydałoby się to zwalidować i przefiltrować pod tym kątem (choćby rzutowanie lub FILTER_SANITIZE_NUMBER_INT).



mysql_real_escape_string nie waliduje operatorów OR AND...?

Jeśli kogoś uraziłem swoją suchą wypowiedzią to przepraszam. Wiem że strona jest dziurawa nie ściągnełem jej żebyście mieli zajęcie. tongue.gif
Spawnm
Cytat
mysql_real_escape_string nie waliduje operatorów OR AND...?

http://php.net/mysql_real_escape_string
pyro
Cześć.

Jeśli chodzi o samo SQL Injection najlepiej korzystać z zapytań predefiniowanych. Nie musisz do tego używać PDO, MySQLi już ma zorientowaną obiektowo obsługę takich zapytań. Użytkownika @alex011251 w ogóle nie słuchaj, bo ten jego "kod" to jakiś śmieszny żart.

Natomiast jeśli chodzi o XSS polecam stosowanie systemu szablonów, który dodatkowo porządkuje kod - np. Twig.
joordan
  1. function add_sql_where($value){
  2. $value = filter_var($value,FILTER_SANITIZE_NUMBER_INT);
  3. } else {
  4. $value = mysql_real_escape_string($value);
  5. $value = filter_var($value,FILTER_SANITIZE_NUMBER_INT);
  6. }
  7. return $value;
  8. }
  9.  
  10. function add_sql_update($value){
  11. } else {
  12. $value = mysql_real_escape_string($value);
  13. }
  14. return $value;
  15. }
  16.  
  17. /////show_in_html
  18.  
  19.  


Tak będzie dobrze ...?
!*!
http://forum.php.pl/index.php?showtopic=23258 a żeby być bardziej na czasie, zacznij czytać tak od 18 strony.
alex011251
Podsumowujac. Widocznie na wszystko znajdzie sie obejscie.
Wiec nie wiem czy ktos sie ze mna zgodzi ale najlepiej jest nie korzystac ze zmiennych globalnych tylko samemu pisac ktore znaki maja byc dozwolone. Nie ktore nie dozwolone bo to za dlugo grzebania.

Z reszta zalozmy za te 3lata moze ktoras z tych "super" zabezpieczajacych funkcji wygasnac i wtedy wszystko staje sie dziurawe.Tak jak moja staaaara klasa.
joordan
Pouczyłem się z PDO i sam nie dowierzam jakie to jest proste i jakie wygodne w użytkowaniu.
  1.  
  2. try{
  3. $pdo = new PDO('mysql:host=localhost;dbname=firany;encoding=utf8', 'root', '');
  4. echo 'Nawiązałem połączenie';
  5. }
  6.  
  7. catch(PDOException $e){
  8. echo 'Błąd:'.$e->getMessage();
  9. }
  10.  
  11. $res1 = $pdo->prepare('INSERT INTO `user` (`nick`) VALUES (`:nick`) ')
  12. $res1->bindValue(':nick', $_GET['nick'], PDD::PARAM_STR);
  13. $res1 ->execute();
  14. $res1 ->closeCursor();
  15.  
  16. $res2 = $pdo -> query('SELECT `nick` FROM `user`');
  17. while ($row = $res ->fetch()) {
  18. }
  19. $res2 ->execute();
  20. $res2 ->closeCursor();


Czy powyższy kod jest bezpieczny...?
devbazy
@joordan: świetny pomysł z tą nazwą tabeli "urzytkownicy". Teraz biedni hakerzy będą próbowali skasować dane z nieistniejącej tabeli "uzytkownicy", o ile znajdą jakąś lukę. Chyba sam muszę zastosować podobną metodę smile.gif
joordan
No ba smile.gif To napewno wina auto uzupełniania w edytorze tongue.gif

A tak na serio to opłaca się w ogóle bawić w escapowanie procedur składowania smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.