PDA

Bekijk Volledige Versie : Mijn site testen op scripting



webchameleon
06/11/07, 16:07
Ik heb een vraagje,
stel ik laat een site custom made bouwen, en ik zou graag na afloop mijn site willen (laten) testen op veiligheid.

Zijn er progamma's hiervoor, of andere mogelijkheden om dit te (laten) testen?

Hopende op een antwoord.

SF-Jeroen
06/11/07, 16:10
Niet echt nee,

Indien het PHP is;

- Zorg dat wachtwoorden encrypted zijn (MD5)
- Zorg dat velden altijd strip_tags,addslashes,trim, etc. hebben
- Zorg dat de server goed beveiligd is
- Gebruik zo min mogelijk "SELECT * FROM" , maar "SELECT username,etc FROM"
- Zorg dat je db_connect een wat lastigere naam heeft
- Zorg dat je map met crons beveiligd is.

webchameleon
06/11/07, 17:35
Gualcherius , bedankt voor de snelle reactie

Dus de volgende regel is een GOED voorbeeld?

$result = mysql_query("SELECT * FROM escort WHERE email = '".$email."'")or die(mysql_error());

MMaI
06/11/07, 17:51
voor de veiligheid kun je register globals off en als je echt iets wil gaan doen denk dan aan mysql_escape_string commando's

ik hoop ook dat je verder dit zelf niet gaat maken maar laat doen door een persoon die hiervan verstand heeft en weet waar hij mee bezig is qua veiligheid, als je dit echt belangrijk vind vergeet hierover dna geen afspraken te maken met degene die het gaat maken

testen op veiligheid is tamelijk lastig omdat deze kennis of bij specialistische (lees: dure) bedrijven is of bij de kwaadwillenden die op een andere manier hier geld mee willen verdienen

wat je zou kunnen proberen is of je een kopie van C99shell te pakken kan krijgen, dit is zon beetje de meest gebruikte hacking toolkit van dit moment

Freakingme
06/11/07, 17:56
- Gebruik zo min mogelijk "SELECT * FROM" , maar "SELECT username,etc FROM"

Dit hoeft niet altijd hoor ;) Als je veel fields nodig hebt (40 bijvoorbeeld), dan scheelt het (in geval van MySQL) zo'n 0.08 seconden gemiddeld als je * ipv alle fieldnames gebruikt.

(eergister gebenchmarked).

SF-Jeroen
06/11/07, 19:03
Inderdaad, het is minder snel, maar bij de gebruikerstabel zou ik het toch altijd doen, zodat bijvoorbeeld Email-addressen / Encrypted Passwords niet kunnen worden gehacked. Bij de tabellen zonder privegegevens, is het inderdaad minder nodig, en kan je de keuze maken om voor de snelheid te gaan

frvge
06/11/07, 19:17
Het beste is om iemand anders in te huren die de code naloopt.

webchameleon
06/11/07, 20:53
Iedereen bedankt voor suggesties en tips
Wie heeft er interesse in om de code door/na te lopen , en wat zal dat kosten?

Laat maar weten.

Xolphin
07/11/07, 02:01
Het is bijna onmogelijk om brakke achteraf veilig te maken. Je kan hoogstens de beginnersfouten en voor de hand liggende fouten er uit laten halen, maar dit kun je na het lezen van wat artikelen op internet over het beveiligen van PHP code zelf ook doen. Er is genoeg informatie voorhanden lijkt me, zoek maar eens op 'PHP Security'.

Om code echt veilig te maken moet een programmeur vanaf de start al weten waar hij mee bezig is. Als je de code gaat gebruiken op een website die geen doelwit van hackers is kom je met een redelijk beveiligde website wel weg. Ga je je code publiceren zodat een hacker toegang tot de code heeft, of als de website interessant voor hackers is (banken, overheid e.d.), zou ik je code vanaf het begin af aan door een professional laten maken die weet wat hij doet. Achteraf beveiligen is vaker geprobeerd, maar er blijven dan altijd gaten zitten.

MMaI
07/11/07, 02:44
Het is bijna onmogelijk om brakke achteraf veilig te maken. Je kan hoogstens de beginnersfouten en voor de hand liggende fouten er uit laten halen, maar dit kun je na het lezen van wat artikelen op internet over het beveiligen van PHP code zelf ook doen. Er is genoeg informatie voorhanden lijkt me, zoek maar eens op 'PHP Security'.

Om code echt veilig te maken moet een programmeur vanaf de start al weten waar hij mee bezig is. Als je de code gaat gebruiken op een website die geen doelwit van hackers is kom je met een redelijk beveiligde website wel weg. Ga je je code publiceren zodat een hacker toegang tot de code heeft, of als de website interessant voor hackers is (banken, overheid e.d.), zou ik je code vanaf het begin af aan door een professional laten maken die weet wat hij doet. Achteraf beveiligen is vaker geprobeerd, maar er blijven dan altijd gaten zitten.

amen, meer is er niet aan toe te voegen :D

bakkerl
07/11/07, 10:15
Niet echt nee,

Indien het PHP is;
- Zorg dat wachtwoorden encrypted zijn (MD5)
MD5 is geen encryptie, maar een hash functie.



- Zorg dat velden altijd strip_tags,addslashes,trim, etc. hebben

Waarom zou dat moeten, als je er maar consequent mee omgaat in de applicatie en zorgt dat sql injectie voorkomen wordt. Daar hoeft je niet verplicht de genoemde functies voor te gebruiken.



- Zorg dat de server goed beveiligd is
Dit moet sowieso en heeft weinig met de applicatie te maken.



- Zorg dat je db_connect een wat lastigere naam heeft
security by obscurity is niet altijd het beste bij voor een stukje veiligheid.



- Zorg dat je map met crons beveiligd is.
Wederom geen applicatie beveiliging, maar een (algemene) server beveiliging.



Dus de volgende regel is een GOED voorbeeld?

$result = mysql_query("SELECT * FROM escort WHERE email = '".$email."'")or die(mysql_error());
Naar mijn mening niet. Mocht de select op een of andere maniet fout gaan, krijgt de gebruiker de standaard mysql_error() te zien. Een betere error afhandeling had netter geweest. De foutmelding ergens loggen voor beheer en een nette foutmelding aan de eind (web)gebruiker melden.
Eind gebruikers hebben er niets aan de technische foutmeldingen.


Voor een goede security moet daar vanaf het begin al rekening mee gehouden worden. Achteraf aanbrengen van security is niet te doen. Als je een review laat houden, dan kun je er nog niet 100% vanuit gaan dat je veilig bent en blijft. Security is iets wat niet alleen tijdens ontwikkelen van een applicatie gedaan moet worden, het blijft doorgaan zolang de applicatie in gebruik is.

webchameleon
07/11/07, 15:28
Beste Xolphin,

Ik heb een script laten maken door een student Informatica, mag hopen dat ze tegenwoordig wat leren op school :p .

Maar ik speel graag op zeker, en omdat ik geen zin heb in hacking kids, wil ik gewoon door derden (met kennis) het script na laten lopen.

Ik zou na een intensieve spoedcursus idd het zelf kunnen nalopen, maar ik zal altijd iets over het hoofd blijven zien, en moet er ook wel tijd voor hebben.


Het is bijna onmogelijk om brakke achteraf veilig te maken. Je kan hoogstens de beginnersfouten en voor de hand liggende fouten er uit laten halen, maar dit kun je na het lezen van wat artikelen op internet over het beveiligen van PHP code zelf ook doen. Er is genoeg informatie voorhanden lijkt me, zoek maar eens op 'PHP Security'.

Om code echt veilig te maken moet een programmeur vanaf de start al weten waar hij mee bezig is. Als je de code gaat gebruiken op een website die geen doelwit van hackers is kom je met een redelijk beveiligde website wel weg. Ga je je code publiceren zodat een hacker toegang tot de code heeft, of als de website interessant voor hackers is (banken, overheid e.d.), zou ik je code vanaf het begin af aan door een professional laten maken die weet wat hij doet. Achteraf beveiligen is vaker geprobeerd, maar er blijven dan altijd gaten zitten.




Beste bakkerl ,

Dank voor je ruime uitleg . Maar als ik nu met een scripter overeen ben gekomen dat het veilig gescript moet zijn, en dat het dan achteraf alles behalve veilig is , dan is de scripter in gebreke gebleven en kan ik verdere stappen ondernemen.

Daar ik zeker op zeker wil spelen, wil ik het graag aan mensen vragen die er kennis van hebben.

Dus vandaar mijn dank voor je uitleg :)


Voor een goede security moet daar vanaf het begin al rekening mee gehouden worden. Achteraf aanbrengen van security is niet te doen. Als je een review laat houden, dan kun je er nog niet 100% vanuit gaan dat je veilig bent en blijft. Security is iets wat niet alleen tijdens ontwikkelen van een applicatie gedaan moet worden, het blijft doorgaan zolang de applicatie in gebruik is.