Categorieën

Recente berichten

CodeGreen versie 1.5 uitgegeven

april 12th, 2010 • CodeReacties uitgeschakeld voor CodeGreen versie 1.5 uitgegeven

codegreenNa veel dingen in het CodeGreen spel te veranderen is er dan nu een nieuwe release van het spel gekomen. Het is eigenlijk niet gebruikelijk voor een game veel release te doen. Dus met deze update zijn veel dingen veranderd waarmee ik gelijk een hele hoop problemen van 1.0.1 probeer op te lossen. Het is dus niet een uitbreiding van het spel maar verbetering van alle problemen. Ten eerste wordt de highscore nu niet meer in een Access database opgeslagen. De access database was vrij groot, ook al zat er geen highscores in.  Daarom heb ik besloten gebruik te maken van de SQLLite database, die als publiek domein gelicenseerd. Dat is goed, want het combineert beter met opensource spel. Nog een voordeel van SQLlite is dat het lichter in geheugen gebruik is en veel sneller dan access. Verder is het probleem dat de muziek stop als een effect geluidje speelt nu opgelost. Maar ik besloten hier niet DirectSound voor te gaan gebruiken om geluid gelijktijdig te kunnen afslepen. In plaats daarvan heb ik een oplossing bedacht om extra geluidje te laten afspelen via een tweede process. Het is een beetje slordig maar hier vermij ik dat DirectSound en dus directX nodig is. Het voordeel van vermijden van Managed DirectX DirectSound is dat de gebruiker niet mee lastig gevallen wordt dat het directX nodig heeft, want dat is zeker 100mb aan bibliotheken. Dat is ook niet noodzakelijk want het spel gebruikt voornamelijk alleen GDI+ en heeft voor het teken en geen complexe 3d modelen nodig. Daarnaast blijft er zonder directX de mogelijkheid om codegreen op Mono onder linux of mac te draaien. Verder heb ik nog het logo op het hoofdscherm transparant gemaakt. Daarvoor moest ook de manier waarop de tekst naar beneden viel herschreven worden. Maar datzelfde effect is nu ook aan het optie scherm toegevoegd. CodeGreen 1.5 is nu te downloaden
Vooral voor mensen die het spel nog niet kennen een aanrader, om te leren hoe hacking simplistische werkt.
update: ik heb 1.5.1 uitgeven omdat een belangrijk dll’tje voor highscoren te laden ontbrak in de 1.5.0 release.

veiliger PHP6 door minder verwarrende beveiliging

april 2nd, 2010 • CodeReacties uitgeschakeld voor veiliger PHP6 door minder verwarrende beveiliging

PHP6 is nu flink in ontwikkeling en het is waarschijnlijk niet lang meer voordat we de eerste php6 release gaan zien. Een ding waar ik blij mee ben is dat in PHP6 magic quotes extensie nu niet meer werkt.

Het probleem met magic quote’s was dat vele PHP programmeur dachten dat ze hun PHP script veilig konden overzetten op een andere hosting terwijl dat niet het geval was. Wat magic qoutes extensie voor PHP scripts namelijk doet is voor elke input via POST en GET variabele de aanhalingstekens en enkele aanhalingsteken escapen.

Dan is het niet mogelijk dat een bezoeker, een string variabel in je script probeert te verlaten en PHP code kan uitvoeren.
Echter gebeurt dit alleen als magic quote op je hosting aanstaat.
Het is dus ook belangrijk dat in de test omgeving en productie omgeving dezelfde instellingen voor magic quotes gebruikt want anders dan is dat vragen om beveiligingsproblemen. Zonder magic quote moet de programmeur zelf ervoor zorgen dat string variabel veilig wordt.

Dan is er ook nog het probleem met magic quote’s dat het de beveiling die de php programmeur wel gemaakt heeft kan opheffen.
Dit gebeurt als Magic Quotes  een slash met aanhalingsteken gaat escape en er dan een dubbele slash staat wat in feit betekent dat de slash ge-escaped wordt en niet het aanhalingsteken meer.

PHP magic quote heeft dus voor veel verwarring en dus beveiligingsproblemen gezorgd terwijl het juist een beveiligingsprobleem automatisch moest oplossen.
Een overzicht van wanneer een php script dus veilig is ziet er dan zo uit:

Een oplossing om een script toch onder zowel hosting met magic quotes aan en magic quote uit veilig te maken was door eerst te controlleren of magic quotes aanstond.
Dit kan door de functie get_magic_quotes_gpc() te gebruiken. Echter moet je dan dus wel een aantal dingen dubbel schrijven, een routine waarbij het script niet escaped als magic quote aanstaan en een andere stuk code waarbij de script wel escaped als magic quotes uitstaat. Een slimmer manier om niet overal get_magic_quotes_gpc() te hoeven aanroepen is om een functie te schrijven die je steeds aanroept wanneer je ergens mogelijk moet escapen en in die functie te controlleren of magic quotes aanstaat.
Indergeval, in de toekomstige php6 versie zal magic quotes standaard er niet meer zijn en zal de php programmeur dus altijd moeten escapen. Dat maakt het wel een stuk duidelijker.

productie

Terughalen van verwijderde Facebook™ status berichten

maart 25th, 2010 • Privacy5 Comments »

Vele mensen weten niet dat Facebook™ de status update’s die verstuurt worden nooit echt verwijdert worden.
Als je op de knop verwijderen duwt is de status updates niet echt weg maar slechts niet meer zichtbaar.
De data is er echter wel nog bewaart in een array met alle status updates.
En een Facebook™ app die de rechten heeft je stream te bekijken kunnen deze berichten inzien inclusief dus de “verwijderde” status updates.

Update: Facebook heeft het ontwikkelaars test console veranderd, de instructie hieronder kloppen niet meer.
Hier is hoe je de hele stream incl. je verwijderen status updates kunt zien,
en waarmee je dus ook je de verwijderde status update kunt inzien:
Ga naar developers.facebook.com/tools.php en log in.
Op de tab API-testconsole zorg je ervoor dat de
toepassing Test Console geselecteerd is.
Kies in de selectielijst de methode: stream.get.
Alle andere velden mag je leeg laten.
Druk op de knop bel methode.
In XML (standaard) krijg je nu alle status updates te ZIEN incl. je verwijderde.

Je kon je verwijderde berichten alleen opnieuw inzien, terugplaatsen kan niet omdat je geen rechten hebt je stream/posts aan te passen. Een Facebook™ app kon in 2010 alleen maar een post toevoegen.
Als je problemen met een verwijderde Facebook bericht dan ga en kan ik je niet helpen, ik werk niet gratis voor Facebook om jouw Facebook™ problemen op te lossen.
Deze post was slechts een technische demonstratie dat Facebook posts nooit echt verwijdert werden in 2010.
Maar pas dus wel op wat je op Facebook™ zegt, het werd waarschijnlijk bewaart voor altijd of lang.
Of dit in 2015 nog steeds gebeurt weet ik niet.

Google opt-out voor analytics via plugin

maart 22nd, 2010 • Privacy1 Comment »

Google analytics is een vrij krachtige en populaire tool om je bezoekers op je website te leren kennen. Het werkt met een javascriptje dat een webmaster aan zijn site toevoegd. Google analytics kan behalve nagaan welke plugins een bezoekers geïnstalleerd heeft, welke browser die gebruikt en welke besturingssysteem ook nagaan via de http reffer van welke website je komt. En dingen als schermresolutie valt via javascript allemaal uit te lezen. Allemaal heel interessant voor de webmaster, maar ongezond voor de privacy van de bezoeker. Want een webmaster zou ook bedenken dat alleen het aantal bezoekers belangrijk is, dit omdat een webmaster wilt weten hoeveel dataverkeer zijn website verbruikt en dus kost.
Om toch de mensen die zich druk maken om de privacy schade die google analystics aanbrengt goed te maken. Heeft google een hele plugin(bron) voor je browser uitgebracht om google analytics te blokkeren. Dit is best een omslachtige methode omdat het slechts 1 javascriptje is. En om daar nou een hele plugin voor te installeren. Je kunt niet weten zonder broncode van die plugin te bekijken of die niet gevaarlijk is. En de plugin gaat niet tegen alle alternatieve voor google analytics werken.

Een betere alternatieve oplossing

Een blokkering van analystics.google.com in je hosts bestand zou een minder zware oplossing zijn. Onder linux systemen is het vrij gemakkelijk te doen. Je voegt de regel:

127.0.0.1 www.google-analytics.com
127.0.0.1 www-google-analytics.l.google.com

toe aan het bestand in /etc/hosts
Onder Windows vergt het iets meer werk.
Je moet dezelfde regels toevoegen aan het bestand in:
c:\windows\system32\drivers\etc\hosts

Onder windows vista en 7 moet je dit wel met de administrator account doen. Maar het kan ook simpeler met een tool als HostsXpert.
Het voordeel van google analystics in je host bestand blokkeren is dat het voor elke webbrowser onder het besturingssysteem dat je gebruikt werkt. Nadeel is wel dat je analystics.google.com echt niet meer kunt bezoeken.

Een andere oplossing is om je tegen google analystics en andere datamining webmastertools te beschermen is door simpelweg javascript uit te zetten.
Als je dat doet ben je ook beschermt tegen oneindige lopende messageboxen en andere javascript kwaad waar je met frustratie alleen je webbrowser kunt laten crashen om het te laten ophouden.
Je kunt ook de Firefox extensie’s noscript installeren zodat je alleen de gevaarlijke en privacy onvriendelijk javascripts hoeft te blokkeren.
Ook biedt NoScript bescherming tegen het recente Firefox Zeroday lek.

Nieuwe blog

maart 20th, 2010 • OverigReacties uitgeschakeld voor Nieuwe blog

Ik heb besloten weg te gaan bij windows live spaces. Dit omdat ik zelf weinig controle over mijn blog had en ik eigenlijk al veel langer een eigen beheer over mijn blog wilde. Daarnaast werdt het ook steeds vaker doelwit van spammers en windows live spaces boodt geen captchas om tegen spam te beschermen.

[d9ping]De naam d9ping is mijn nickname van verschillende software projecten.
De naam slaat op een beruchte exploit met de naam ping of death.
De exploit heeft bij vele computers in het windows95 tijdperk blauweschermen ook wel Blue Screens of Death (afgekort: BSOD) veroorzaakt. De remote exploit kon door iedereen worden gemaakt door een ping pakketje (opdracht ping) met een te grote buffer te verzenden met schakelopties -l. De grote buffer kon de computer die het ping pakketje ontvangde niet verwerken. Vrijwel alle besturingssystemen waren kwetsbaar (als de firewall maar ICMP verkeer toeliet) Maar het duurde voor de linux gemeenschap slecht paar minuten een patch uit te brengen. De exploit was vrij eenvoudig uit te voeren, en de impact was behoorlijk serieus. Sommige maakte het uitvoeren van de exploit nog makkelijk door een GUI(bijv. win nuke’m) te maken waarin je alleen een ip adres hoeft in te vullen. ICMP verkeer met de ping en tracert opdrachten was origineel alleen bedoelt om internet/netwerk verbindingen te testen.