Sven Rautenberg: Website g-zip'ed an client schicken?

Beitrag lesen

Moin!

das hat einen gewissen hintergrund..
ich schreibe ein massive multiplayer onlinegame auf webbrowser basis (ja, wo es schon viele viele gibt, drum muss nen neues spielprinzip her :) )
was ich verhindern möchte ist die steuerung durch scripte dritter..

Das verhinderst du keinesfalls durch gzip-Encoding. Da brauchst du irgendeinen Bestandteil, welcher menschliche Intelligenz notwendig macht und Computerverarbeitung unmöglich.

Außerdem fragen nicht alle Browser nach gezipptem Inhalt - du würdest also auch reguläre Benutzer ausschließen. Der IE hat beispielsweise Default-Einstellungen, die gezippten Content nicht abfragen, wenn man über Proxys geht oder gehen muß.

Natürlich kannst du die HTTP-Header analysieren und Anfragen, die offensichtlich von einem Skript kommen, verwerfen, aber es ist ein leichtes, die HTTP-Header "passend" zu manipulieren. Das schützt dich pro Spieler, der skripten will, genau ein Mal - danach weiß er, wie der Hase läuft.

zum einen mache ich das mittels einer zufälligen zahl die als bild dargestellt wird und die eingegeben werden muss..
also bräuchte das steuernde script ocr-fähigkeit :)

Das wäre so eine Sache.

gzip möchte ich einerseits zum reduzieren des traffic's, andererseits bedeutet es mehr rechenleistung für die scripte den content erst zu dekomprimieren..

Aber wirklich nur ganz marginal. Komprimieren ist das komplizierte, Dekomprimieren hingegen ist dann ganz billig.

wer galaxywars.de kennt:
dort kann man flotten verschicken um andere anzugreifen und somit rohstoffe zu erbeuten..
ich habe dazu scripte geschrieben die in kürzester zeit 100e flotten versenden, viel schneller als man das über die formulare von galaxywars könnte..
aber das benötigt schon so sehr viel performance, da die perlscripte je nach anzahl der flottenaufträge durchaus einige stunden laufen können..
da kommt auch schonmal bei 1&1 das nette cgi-limit reached :)
wenn ich die pages vorher noch dekomprimieren müsste hätte ich dieses limit schon viel früher..

Wo ist da eigentlich das Problem: Der Wettstreit verlagert sich vom ursprünglichen Spiel hin zu einem Wettstreit, wer die besseren Skripte schreibt und den schnelleren Server hat. Ist doch auch interessant, oder?

nunja, ob die zeit so vernachlässigbar ist muss ich testen..
es kommt ja ne sehr hohe belastung auf den server zu und ichmöchte ihn nicht unnötig stark verlangsamen..

Performance ist natürlich immer ein Problem - allerdings hat der Selfserver hier mit gzip-codiertem Content eigentlich keinerlei Probleme. Das gesamte Forum wird so ausgeliefert, wenn es möglich ist - und der Server ist wirklich gut ausgelastet, hat mit dem gzippen aber absolut kein Problem. Du kannst das gzippen außerdem konfigurieren: Man kann maximal gzippen (Level 9), braucht dafür aber ziemlich viel Rechenzeit. Sowas lohnt sich für statischen Content, der nur ein einziges mal gezippt werden muß. Dynamischer Content hingegen muß nur leicht komprimiert werden (Level 3) - damit gewinnt man schon ganz erheblich Platz bei der Übertragung, verbraucht aber wesentlich weniger CPU-Power.

Du solltest dich deshalb auch mal mit mod_gzip auseinandersetzen, sofern du die Server-Konfiguration selbst beeinflussen kannst. Dieses Apache-Modul ist recht leistungsfähig geworden.

- Sven Rautenberg

--
Signatur oder nicht Signatur - das ist hier die Frage!