Online php spel beveiligen

Door Katjan , 15 jaar geleden, 5.597x bekeken

hoe beveilig ik mijn mmorpg, waar moet ik op letten?

Gesponsorde koppelingen

Inhoudsopgave

  1. Inleiding
  2. De absolute basis
  3. Het login systeem
  4. Cross Page Command Execution
  5. Timing exploits
  6. xss
  7. conclusie

 

Er zijn 17 reacties op 'Online php spel beveiligen'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Nick Mulder
Nick Mulder
15 jaar geleden
 
0 +1 -0 -1
Ziet er goed uit, alleen 2 minuten voor mijn password? No way, ik heb het zelf geprobeerd, heb hem na 3 dagen maar uitgezet, het duurde me te lang...
Menno
menno
15 jaar geleden
 
0 +1 -0 -1
Wel leuke tutorial ;)
ik ben momenteel al een spel aan het maken dus kan ik kijken of ik wat dingen onveilig heb gedaan.
Bedankt ;)
TJVB tvb
TJVB tvb
15 jaar geleden
 
0 +1 -0 -1
Ziet er duidelijk uit
Quote:
Dit in combinatie met addslashes/mysql_real_escape_string zorgt ervoor dat sql injetion in ieder geval niet mogelijk is.
Is html_entities niet een handige toevoeging? Dan kun je in je ubb parser gewoon rekening houden met die entities. Dit voorkomt ook al een redelijk deel van de xss problemen.
En om dat soort dingen automatisch te doen met een foreach over je $_GET en $_POST in bijvoorbeeld je config file is ook handig dan vergeet je het niet zo snel.
Katjan
katjan
15 jaar geleden
 
0 +1 -0 -1
oh ja hoor, 3 minuten is meer dan genoeg.

kijk maar even op www.plain-text.info
voor de meeste passes heeft die ongeveer 1-2 minuten nodig, maar voor sommigen ook minder.

en, html_entities beschouw ik als deel van de ubb parser..
natuurlijk is dat slim/nodig;)

edit: htmlspecialchar is NIET gemaakt om sql injection te voorkomen!
alleen al vanwege het feit dat het ' niet standaard converteert, en die parameter nogal eens vergeten wordt..

edit2: plain-text.info is neer..
Paul K
Paul K
15 jaar geleden
 
0 +1 -0 -1
Best handig.... Bedankt :P
Winston Smith
Winston Smith
15 jaar geleden
 
0 +1 -0 -1
Het gedeelte over timing exploits is interessant. In een vaag verleden heb ik hier iets over gelezen, maar was het alweer vergeten.

Kan je een query laten zien die de controle binnen MySQL doet? Zijn die 'geavanceerder' dan anders, of meer het standaard werk?


15 jaar geleden
 
0 +1 -0 -1
mooie tutorial, want ik ben juist bezig met een login systeem en dus is het wel handig dat ik weet waarop ik moet letten :)
Katjan
katjan
15 jaar geleden
 
0 +1 -0 -1
@kasper,
gewoon redelijk standaard:
update geld set geld=geld-verstuurd_geld where geld>= verstuurd_geld
MrJarod
MrJarod
15 jaar geleden
 
0 +1 -0 -1
Ik vind dit altijd leuk om te lezen, want ik weet er ook wel het e.e.a. van... (ik ben bezig met http://www.chsweb.nl een textbased rpg, en bugfree (a))

Maar nou, ik post hier natuurlijk niet voor niets =')
Ik wou even kwijt dat het script van "Timing exploits" echt om te huilen is.

Je hebt het daarboven over input checken, please check dan ook ff of de input negatief is, want als iemand nu een negatief bedrag invoert, krijgt hij er geld bij. xD
Volgens mij zijn DIT de dingen waardoor spelers weggaan, als mensen hun geld zien verdwijnen waarvoor ze zo lang hebben gespaard.
Rudie dirkx
rudie dirkx
15 jaar geleden
 
0 +1 -0 -1
Goed artikel!! Erg goed. Duidelijk, niet te lang en goede samenvatting van een aantal belangrijke veelgebruikte 'hacks'. Gelukkig kende ik ze allemaal en houd ik er rekening mee ;) maar er zullen zeker veel scripts online staan (vooral spelletjes, maar zoals je al zei, nog veel meer) waar niet met alles rekening gehouden wordt.

@MrJarod
Ik neem aan dat het voorbeeldje niet echt gebruikt wordt. Voor elke actie een functie lijkt me ietwat overdreven. De exploit is echter wel duidelijk uitgelegd en hoe je er rekening mee moet houden
Katjan
katjan
15 jaar geleden
 
0 +1 -0 -1
@mrjarod

jung, daar gaat het toch helemala niet om.
ik ga als VOORBEELD toch ook geen compleet framework opzetten,
omdat ik dat als ik een spel zou maken ook zou gebruiken.

het doel van het voorbeeld was om die hack te verijdelen,
niet om een voorbeeld te geven van een 100% veilig bank script.

zo.

@vercetti

dank!:D
- wes  -
- wes -
15 jaar geleden
 
0 +1 -0 -1
als je het doet moet je het ook goed doen
Wim Mari
Wim Mari
15 jaar geleden
 
0 +1 -0 -1
Er zijn nog veel mensen met een dynamisch IP-adres. Die ga je dus elke keer opnieuw laten inloggen? gezellig!

Bovendien, als je met cookies werkt heb je het probleem al niet van die img om iemand te bannen.

Laatste puntje: het logaritme van MD5 is inderdaad gecrackt, maar het is nog steeds relatief veilig.
Het veiligste is nog steeds een eigen hash maken, welke je voor 1x eens NIET opensource maakt! Anders is een combinatie van 2 hashes nog altijd het veiligst, bvb sha1 en md5.
TJVB tvb
TJVB tvb
15 jaar geleden
 
0 +1 -0 -1
Wim Mari?n wat is het probleem als mensen overnieuw in moeten loggen als ze opnieuw op internet komen. Niks is zo irritant als mensen op het account van een ander gaan zitten omdat ze toevallig bij die pc komen en er meteen vanalles mee uithalen.

En een eigen hash maken kan altijd nog werkt ook nog wel goed. Tevens is het natuurlijk handig om te zorgen dat de hash niet richting de gebruiker gaat, dan kan het ook niet "gekraakt" worden.
MrJarod
MrJarod
14 jaar geleden
 
0 +1 -0 -1
@huib

Ik vind, dat als je iets online zet als voorbeeld, dan moet je goede code online zetten, en niet halfgebakken. Daar kan niemand wat van leren.
Het gaat maar om 1 if-statement, dat hoort daar gewoon te staan, maar als je daar te lui voor bent hoor je geen tutorials te schrijven.
Jacco Engel
Jacco Engel
14 jaar geleden
 
0 +1 -0 -1
En anders reageer je nog even op een script van 14 maand oud waarbij de laatste reactie volgende week precies een jaar geleden is
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Nick Zwaal
Nick Zwaal
11 jaar geleden
 
0 +1 -0 -1
Ik reageer op dit 50 maanden oud script omdat ik graag wil weten of dit alles nog steeds geldt. Het klinkt zeer logisch en ik vind het erg interessant om te lezen. Bedankt voor het delen!

(Ik merk dat de meeste tutorials hier 50+ maanden oud zijn, ik hoop dat het geen probleem is als ik nog steeds op deze reageer met evt. vragen/opmerkingen)

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. Inleiding
  2. De absolute basis
  3. Het login systeem
  4. Cross Page Command Execution
  5. Timing exploits
  6. xss
  7. conclusie

Labels

  • Geen tags toegevoegd.

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.