php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.12.2011, 13:47  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.115
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard Apache -> NodeJS kommunikation/sicherheit

Hallo leute,

ich versuche gerade ein vorhandenen PHP Script mit NodeJS und Sockets.IO zu erweitern für Realtime aktualisierungen. Dabei verwende ich das Node Modul NowJS (wegen einfacher Implementierung). Alles funktioniert soweit, nur hat NowJS einige sicherheitslücken, die ich jetzt zumachen muss.

Zunächst Mal ist es möglich in NowJS/Socket.IO durch das Einbinden des Serverscriptes in die Eigene Seite, zusätzliche informationen in die Hauptseite einzuschleusen.

Als Beispiel könnt ihr http://nowjs.com/examples/map im Firefox öffnen, und paralel auf eurem Localen Apache Server eine test.html erstellen mit Folgenden Quellcode: http://pastebin.com/duStSVQF. Die Test.html in einem Anderen Browser öffnen, und euer "Actor" wird auf nowjs.com angezeigt der von localhost/test.html kommt.

Wenn ihr also ein Chat habt, könnten dort Spambots ohne Probleme reinkommen.

Nun zu meinem Problem: Ich habe auch eine Multiplayer Karte. Zur sieht der Workflow so aus:

1) map.php wird aufgerufen
2) map.php Holt informationen aus der Datenbank
3) map.php gibt die daten aus etwa in der Form
PHP-Code:
<script type="text/javascript">
var my = {
name : '<?= $name ?>',
x : '<?= $x ?>',
y : '<?= $y ?>',
}
</script>
4) DOM wird ausgegeben, jquery .ready function wird aufgerufen.
5) now.ready wird aufgerufen und my variable wird an NodeServer übergeben.
6) NodeServer leitet die my variable an Clients, die gerade verbunden sind weiter und triggered die update funktion der Clients
7) Andere benutzer sehen dass sich auf der Karte was aktualisiert.

Soweit so gut. Nun ist es aber Möglich, den Script zu bearbeiten mit Firebug und my.x auf zb 100 setzen und my.y auf 200 und plötzlich hat man sich wegteleportiert. Also müssen die x/y koordinaten nicht von map.php ausgegeben werden, sondern mein NodeJS server muss diese sich irgendwie anders holen.

Mein Gedanke war zunächst, NodeJS macht ein Ajax Request auf apache server um die Daten zu holen.

Nun kommt aber das Problem der Authentifizierung. Ich muss im ajax request des NodeServers irgendwas dem Apache server mitgeben damit der Apache weis, dass der Request NUR von meinem Server kommen kann.

Und da ist der Hacken, habt ihr irgendwelche Vorschläge wie der Node Server meinem Apache Server nach daten abfragen kann, die wirklich nur den einen User was angehen?

Das Problem ist,dass mein Apache + MySQL server nicht auf dem Gleichen Hoster läuft.
Sonst hätte ich einfach mit nodejs auf mysql zugegriffen, leider geht das nicht. Also muss Node sich die sachen von Apache holen.

2 Ansätze habe ich, jedoch weis ich nicht ob die sicher wären.

1) die ajax_data.php so einrichten dass die nur dann Daten anzeigt, wenn $_SERVER['REMOTE_ADDR'] bestimmte IP hat.

2) einen extra Node User anlegen in der mysql datenbank und dann über ajax
einloggen. etwa so
ajax_data.php?user=Node&password=klartextpw&user_i d=1

die user_id würde dann vom Client zu node gelangen und man könnte diese dann bestimmt auch manipulieren..

Ich weis es nicht, vielleicht habt ihr weitere ansätze?

MFG
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.12.2011, 14:34  
Erfahrener Benutzer
 
Registriert seit: 28.05.2008
Beiträge: 2.094
PHP-Kenntnisse:
Fortgeschritten
rudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nettrudygotya ist einfach richtig nett
Standard

Initialisiere eine Session in nodejs: http://senchalabs.github.com/connect...e-session.html
=> Ohne session keine Antwort.

Um eine Manipulation zu erschweren, kannst du x und y vom viewport als private Eigenschaften deklarieren.
__________________
++++ Wieder einer ins Netz gegangen: Phishers Fritz zufrieden ++++
Blog
rudygotya ist offline   Mit Zitat antworten
Alt 02.12.2011, 15:41  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.115
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

die session muss aber dann an apache übergeben werden, und er kann mit der session nichts anfangen.

eigenlicht müsste ich sowas wie ein AuthToken generieren, den an Node übergeben, node holt sich mit dem Authtoken informationen von Apache.

Ich glaube ich könnte nach dem login ein Authtoken generieren , in datenbank speichern an node übergeben und node holt sich dann die informationen mit dem token und löscht den token wieder aus derdatenbank..

das müsste klappen.. werde es mal antesten
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Windows + Apache + PHP + Imagick Chriz Tutorials 23 19.09.2011 16:15
[Erledigt] PHPINIDir takes one argument |Error| - PHP 5.3.6 + Apache 2.2 + Win7 x64 dreamcatcher Server, Hosting und Workstations 3 21.04.2011 12:36
Xampp -> Apache Server High Loaded! Jabbo Server, Hosting und Workstations 4 14.06.2010 00:13
php header status 404 lädt apache ErrorDocument bennson Server, Hosting und Workstations 0 25.03.2010 14:17
Apache und Php installieren bumer2006 Server, Hosting und Workstations 17 13.01.2010 11:18
Apache - PHP - eAccelerator - Problem M*I*B Server, Hosting und Workstations 0 09.06.2009 09:20
Apache 2.2 & PHP 5.x freq.9 Server, Hosting und Workstations 26 25.03.2009 21:41
Apache startet nach systemneustart nicht nexter Server, Hosting und Workstations 2 26.04.2006 11:10
[Erledigt] Zu blöd um MySQL in PHP einzurichten? Apache Server PHP Tipps 2006 18 30.01.2006 23:39
Apache und IIS? lomtas Server, Hosting und Workstations 1 23.11.2005 13:44
php Warnung nach Apache Update PHP Tipps 2005 2 07.02.2005 13:38
Mehrere Benutzer und private Verzeichnisse mit Apache fantast Server, Hosting und Workstations 19 18.01.2005 13:59
[Erledigt] Apache Hilfe Server, Hosting und Workstations 16 31.12.2004 17:18
[Erledigt] Apache frisst speicher, Downlad grosser Datein über PHP Server, Hosting und Workstations 3 28.09.2004 20:07
Apache - php - Mysql Problem Server, Hosting und Workstations 4 15.07.2004 17:09

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
vergleich node.js apache, node.js mysql, node.js tutorial deutsch, nowjs php session, apache php ajax problem 200, php node.js neustarten, node.js auf iis implementieren, node.js apache, socket.io get php session, node.js xampp, node.js und apache, node.js sicherheit, node.js mysql deutsch, socket.emit funktioniert nicht unter firefox node.js, nodejs get php session, nodejs skripte einbinden beim start, node.js tutorial, nodejs sicherheit, node.js php ausgeben, node.js authentifizierung

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:40 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum