Het rapporteren van fouten

Een standaard aanval taktiek is om het systeem te voorzien van ongeldige gegevens , en zo te controleren op fouten en de context waarin foutmeldingen worden teruggegeven . Dit voorziet de aanvaller van informatie over de server waarmee deze mogelijke zwakheden kan vinden .

De meldingen die PHP normaal teruggeeft kunnen erg nuttig zijn voor een ontwikkelaar die aan het debuggen is , zoals dingen als de functie of het bestand dat faalde , het PHP bestand dat fout liep , en het regelnummer waar de fout optrad . Al deze informatie kan worden gebruikt om het systeem te helpen kraken .

Als voorbeeld is de stijl van de foutmeldingen die PHP geeft . Als een aanvaller naar een .html pagina kijkt , en wil weten wat voor back-end er draait ( om zwakheden in het systeem te vinden ) , kan hij , door er foutieve gegevens heen te sturen , er misschien achter komen dat het systeem is gebouwd met PHP .

Een functie foutmelding kan een indictatie zijn dat een systeem een specifieke database engine draait , of kan aanwijzingen geven hoe de website is geprogrammed of is ontworpen . Dit geeft meer aanleiding tot een verder onderzoek naar openstaande database porten , of om te kijken naar speicifieke bugs in een website . Door verschillende stukken van " slechte " gegevens te versturen , kan hij de manier van authenticatie vinden (met behulp van de regelnummers in de foutmeldingen ) alsook op zoek gaan naar bugs in andere plaatsen in een script .

Een bestands of normale PHP fout kan aangeven wat voor permissies de webserver heeft , alsmede de structuur en plaats van bestanden op de web server .

Er zijn drie manieren van oplossingen voor dit soort zaken . De eerste is om alle functies zo te maken , dat foutieve invoer in zijn geheel wordt afgevangen . De tweede manier is om alle fout rapportage uit te zetten en de derde is om PHP ' s eigen foutafhandeling te omzeilen en deze te vervangen door gebruikers gedefineerde fout afhandelings routines . Afhankelijk van je security policies , kan elk van de genoemde drie toepasbaar zijn op jouw situatie .