-15% na nową książkę sekuraka: Wprowadzenie do bezpieczeństwa IT. Przy zamówieniu podaj kod: 10000

~50% programistów PHP nie wie jak chronić się przed SQLi? Rozpylają dalej tą (nie)wiedzę na Stack Overflow

06 grudnia 2016, 13:53 | W biegu | komentarzy 15

Ciekawy projekt mający na celu namierzać wystąpienia podatności SQL injection w wątkach dotyczących PHP na Stack Overflow. Według autorów projektu, miesięcznie pytań tego typu (zawierających SQLi) jest spokojnie ponad 1000:

php

Z kolei wśród pytań dotyczących PHP/MySQL – procentowa zawartość SQLi oscyluje w okolicach 50%:

sql-stack-overflow-2

Jest też trochę swojskich wątków (wystarczy kliknąć na dane zapytanie aby przenieść się do konkretnego pytania na SO). Pierwszy przykład z brzegu:

28/11/2016 22:29:31 $zapytanie = „SELECT iloscsurmaterialu, Produkt FROM receptaprodukt WHERE surowiec=’$mat'”

Udanego copy-paste ;-)

PS

 W temacie ochrony przed SQL injection polecam zerknąć na strony OWASP – a przede wszystkim na mechanizm zapytań parametryzowanych.

SQLi można też poćwiczyć na naszym serwisie rozwal.to,  lub wbić się na odpowiednie szkolenie.

–ms

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. Frędzel

    Wszystko cudnie, ale proszę – „tę” niewiedzę :-)

    Odpowiedz
  2. Tomasz

    Na rozwalił.to dostałem bana;(

    Odpowiedz
    • to może jakiś error :/ raczej banów jest b. mało chyba że admin coś kliknął nie tak :P

      Odpowiedz
  3. Zenon

    Panowie, serio nie ma sensowniejszych i rzetelniej opracowanych tematów? Projekt do którego linkujecie:
    * analizuje _pytania_, więc teza o 'rozpylaniu dalej (nie)wiedzy’ jest od czapy
    * wyszukuje wystąpienia zmiennych w jednych stringach z zapytaniami, które może nie jest dobrą praktyką, ale samo w sobie nie warunkuje wystąpienia SQLi
    * analizuje miejsce, gdzie wypowiadają się osoby szukające wiedzy, więc pisanie '50% programistów PHP’ to nagłówek godny pudelka
    * analizuje krótkie snippety, gdzie czasem robi się skróty

    Podsumowując – ogarnijcie się. Sam projekt jest naciągany, a komentarz jaki dopisaliście godny portalozy.

    Odpowiedz
    • my widzimy w pentestach na żywych aplikacjach +- podobną ilość SQLi. Dokładnie licząc co do procenta to pewnie że nie będzie to się zgadzało. Ale przybliżenie imo może być niezłe.

      Odpowiedz
      • Zenon

        Nie no, panowie, ale nie mieszajmy systemów walutowych, nie bądźmy peweksami. Może po kolei:
        * Zalinkowany skrypt wyciąga użycie zmiennych w SQLkach, które samo w sobie dowodem na SQLi nie jest
        * We wnioskach podaje liczbę pytań
        * W tekście napisaliście o liczbie programistów
        * W komentarzu napisaliście o liczbie skryptów

        Nawet jeśli robiąc mocną gimnastykę umysłową i ludzi, którzy zadają pytania na SO o PHP nazwie się „programistami PHP”, to pisanie takich wniosków jak wyżej jest mocno naciągane.

        Odpowiedz
        • Ja tylko jeszcze dodam, że nierzadko tacy programiści są programistami innych języków, którzy na szybko stali się tymczasowymi programistami PHP, bo akurat trzeba coś w PHP zrobić, „a przecież pehap taki prosty”. Co dotnetowcy potrafią w PHP natworzyć to się nawet filozofom nie śniło. :D

          Odpowiedz
  4. Michał

    Według mnie, projekt ten wcale nie jest ciekawy. Jest wręcz bez sensu. Na stack, podaje się osobom pytającym same rozwiązania koncepcji i oczekuje się, że wdrąży to walidacje już do projektu.

    Odpowiedz
    • Zgadzam się, z Tobą – najczęściej szukam koncepcji lub przykładu, na podstawie którego piszę własną implementację. Przecież nie chodzi tam o kopiuj-wklej, tylko by pokazać jak rozwiązać dany problem.

      Odpowiedz
  5. Dorzucę swoje 3 gr. ½ PHP-owców nie potrafi chronić się przez SQLi — z moich [smutnych] obserwacji wynika, że sporo z nich „aktywnie” protestuje przeciwko potrzebie takiego zabezpieczenia.

    Ciekawe, w ilu wątkach nadal używane jest rozszerzenie mysql zamiast pdo :/.

    Odpowiedz
  6. Paweł

    Nie potrzebujecie czasem webdeva do ogarnięcia rwd na tej stronie? Katorga..

    Odpowiedz
    • jakoś tak chałpniczo ciągniemy przez 3 lata ;)

      Odpowiedz
      • Adam

        Quick and dirty:

        @media (max-width: 940px) {
        #content, #sidebar {
        float: none !important;
        width: 100% !important;
        }
        .wrapper, header#header nav ul {
        width: auto !important;
        margin: 0 20px !important;
        }
        header#header nav ul li {
        display: block !important;
        padding: 12px 0 !important;
        }
        header#header nav ul li a {
        border-right: none !important;
        }
        }

        Korzystajcie i modyfikujcie do woli :)

        Odpowiedz
  7. Olivier

    Ja pracuję 3 lata jako programista php i nigdy nie spotkałem się z taką praktyką. Wszyscy używają PDO, a naj Wczęściej jakiegoś ORM. Wszystko to ma w tutorialu preparing, więc nawet jak nie wiedzą o co chodzi to ludzie się uczą pisać kwerendy sparametryzowane.

    Odpowiedz

Odpowiedz