php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.07.2009, 09:28  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.256
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard Bewertung der Sicherheit einer Hash-URL oder Alternativen

Moin,

kürzlich gabs einen Thread dazu, ich stehe gerade vor einer ähnlichen Frage:

Für eine Exportfunktion überlege ich, welches Vorgehen mir ein gutes Verhältnis zwischen Sicherheit und Komfort bietet.

Es existiert eine Anwendung, deren Backend mit http auth passwortgeschützt ist. Diese soll zu einem Mehrusersystem ausgebaut werden, wobei die Zugänge ändern können. Weswegen die Authentifizierung vermutlich auf eine DB/Session Lösung umgebaut wird.
Für eine Drittsoftware und auch bspw. für das natürliche Verlangen der Bürogesellschaft, alles in Excel exportieren zu können, möchte ich eine Schnittstelle anbieten, die mir CSV zum Download anbietet.
Das funktioniert auch.

Die Drittsoftware (Sendblaster Bulk Emailer) bietet einen URL-Zugriff und kann damit dirket das CSV verarbeiten.

Es bleibt die Frage der Absicherung des Exports. Bisher funktioniert
http://user:passwort@url.tld/export/key
, also HTTP AUTH über Url (anders gehts nicht).

Wie gesagt, eigentlich will ich aber von .htaccess Schutz weg und habe über eine sha-1 Hash URL nachgedacht. Dabei würde dieser gleichzeitig
- die Authentifizierung übernehmen (by obscurity)
- Abfragemenge und User hashen (also bei gleichen Abfragewerten verschiedener User verschieden sein, für einen User aber immer konstant)

Die Daten sind durchaus als sensibel zu bezeichnen (Emails, Personendaten) so dass ich mit der Vorstellung noch nicht so richtig glücklich bin - eine super umständliche Lösung würde wiederum andere nicht sehr glücklich machen.

Ich habe noch überlegt, dass man diese Export-URL im Backend freischalten könnte und/oder dabei mit einem Timeout arbeit (also Export in den nächsten 15 Minuten möglich).


Wie bewertet Ihr das Ganze und habt Ihr noch Ideen, Tipps oder praktische Erfahrungswerte mit solchen Sachen?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 13.07.2009, 10:03  
erc
Erfahrener Benutzer
 
Registriert seit: 02.01.2009
Beiträge: 730
PHP-Kenntnisse:
Fortgeschritten
erc wird schon bald berühmt werden
Standard

HTTPS und HTTP Auth... mehr würd ich da nicht machen. Bei zuviel langerweile kann man alternativ Client Zertifikate in betracht ziehen... das heißt aber mehr administrativer Aufwand.
erc ist offline   Mit Zitat antworten
Alt 13.07.2009, 11:19  
¯\_(ツ)_/¯
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.814
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Mh ich seh nicht so einen großen Unterschied ob jetzt vor der URL user:password@ steht oder dahinter irgend ein anderer kryptischer String. Im Endeffekt ist das doch gleich sicher oder? Sollte jemand an die URL kommen kann er bei beiden Möglichkeiten zugreifen.

Du kannst ja auch die Form user:password@domain nutzen um dich per DB/Session zu authentifizieren. Du kannst ja den Namen und das Passwort aus der URL auslesen (ohne jetzt diesen HTTP Auth umzusetzen).

Edit: Scheiß Smilies ...

Edit2: Ich würde sogar behaupten dass deine Hash Variante in dem Sinne sicherer ist dass, sollte dir URL jemandem in die Hände fallen, das Passwort des Users versteckt bleibt. Da User ja dazu neigen Passwörter für alle möglichen Dienste zu nutzen würde bei einem Hash der Angreifer nicht gleich das komplette Passwort herausfinden. Außerdem kannst du ja nur bei dieser Exportierfunktion den Hash als mögliche Authentifizierung nutzen, somit wäre das restliche System weiterhin sicher denn dafür wird dann der User/Pwd gebraucht.
Flor1an ist offline   Mit Zitat antworten
Alt 13.07.2009, 13:08  
Erfahrener Benutzer
 
Benutzerbild von boolean
 
Registriert seit: 06.10.2008
Beiträge: 257
PHP-Kenntnisse:
Fortgeschritten
boolean ist zur Zeit noch ein unbeschriebenes Blatt
boolean eine Nachricht über Skype™ schicken
Standard

Da du von deinem Passwortschutz nicht mehr möchtest und PHP keiner wirkliche Lösung bietet derartige Dinge wirklich zu schützten, rate ich dir das ganze Serverabhängig zu gestalten. Lasse doch einfach nur die IP zu, über die die Webanwendung auf die URL zugreift - so hast du den effekt, dass du nicht jedes mal mit dem Passwortschutz arbeiten musst.
__________________
true||false - www.trueorfalse.de - Rund um Software Entwicklung
boolean ist offline   Mit Zitat antworten
Alt 13.07.2009, 13:19  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.256
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Zitat:
Ich würde sogar behaupten dass deine Hash Variante in dem Sinne sicherer ist dass, sollte dir URL jemandem in die Hände fallen, das Passwort des Users versteckt bleibt. Da User ja dazu neigen Passwörter für alle möglichen Dienste zu nutzen würde bei einem Hash der Angreifer nicht gleich das komplette Passwort herausfinden.
Das ist nämlich auch meine Überlegung. Zumal irgendein kryptischer STring sowie folgen wird, um verschiedene Exportparameter zu bundlen. Für den c&p Anwender ist das sowieso wurscht, für den ist "export_stammdaten.php5" genauso kryptisch wie "a5234876fde78954"

Zitat:
Außerdem kannst du ja nur bei dieser Exportierfunktion den Hash als mögliche Authentifizierung nutzen,
So wäre das dann angedacht, ja.

Zitat:
Da du von deinem Passwortschutz nicht mehr möchtest und PHP keiner wirkliche Lösung bietet derartige Dinge wirklich zu schützten, rate ich dir das ganze Serverabhängig zu gestalten. Lasse doch einfach nur die IP zu
Geht leider nicht, die zugreifende Software ist Clientsoftware (XP) und die Firma besitzt imho auch keine feste IP (werde ich nochmal prüfen).

Zitat:
Client Zertifikate
Hast Du da Erfahrung? Wie läuft das? Sind die so tief im System (Windoof) dass die auch für Nicht-Standardprogramme funktionieren? Lqüft das übers Verbindungsprotokoll? Und wie sieht das Server-seitig aus (Sorry für die vielen Dödelfragen. Wenn Du keine Erfahrung damit hast, forsche ich selber mal.)
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 13.07.2009, 14:40  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Hast Du da Erfahrung? Wie läuft das? Sind die so tief im System (Windoof) dass die auch für Nicht-Standardprogramme funktionieren? Lqüft das übers Verbindungsprotokoll? Und wie sieht das Server-seitig aus (Sorry für die vielen Dödelfragen. Wenn Du keine Erfahrung damit hast, forsche ich selber mal.)
windows hat zwar eine zertifikatverwaltung, aber die muss das programm auch unterstützen.

die angesprochene zertifizierung des clients passiert nach der asymetrischen schlüsselerzeugung (Diffie-Hellmann meistens). dazu sendet der client sein zertifikat an den server und versucht das des servers zu vertifizieren. zusätzlich wird jetzt ein neuer schlüssel für die anschließende symmetrische verschlüsselung erzeugt, dies kann entweder auf client seite passieren welcher dann den schlüssel mit dem öffentlichen schlüssel (dieser ist im zertifikat enthalten) des servers verschlüsselt und ihm zusendet oder durch eine erneute asymetrische schlüsselerzeugung.
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*
brian johnson ist offline   Mit Zitat antworten
Alt 13.07.2009, 14:48  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.256
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Zitat:
windows hat zwar eine zertifikatverwaltung, aber die muss das programm auch unterstützen.
Das reicht mir schon fast als Info. Vermutlich kann man nicht davon ausgehen Werde irgendwann mal den Support fragen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 13.07.2009, 15:01  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.425
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Wie erc schon schrieb: du solltest die Verbindung auf jeden Fall per SSL/TLS verschlüsseln.
Ferner kannst du bei einer HTTP-Authentifizierung statt des Typs Basic eine Digest Authentication benutzen. Hier werden nur Hashwerte und keine Klartextkennwörter gesendet. Deine Idee mit den Hashs ist also nicht neu und sogar schon in den RFC 2617 gegossen.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 13.07.2009, 15:14  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.256
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Zitat:
Digest Authentication: RFC 2617
Danke dafür. Hatte ich heute morgen schon mal kurz reingeschaut, schätze da muss ich noch etwas schnüffeln, ich kapier das Implementierungsbeispiel im Manual auch noch nicht ganz. Klasse wäre wenn man darin eigene Daten mitverhashen könnte, bisher habe ich nur von user, passwort, HTTP-Methode etc. gelesen. Mal sehen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 13.07.2009, 15:23  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.425
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Was willst du denn sonst mithashen? Die Inhalte etc. würde ich eher durch SSL/TLS verschlüsseln.
Weitere Infos auch hier: Digest access authentication - Wikipedia, the free encyclopedia
Authentication, Authorization, and Access Control

Beitrag editiert:
[…] Falls du den Hash noch salzen willst: das wird automatisch erledigt.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems

Geändert von Manko10 (13.07.2009 um 15:27 Uhr).
Manko10 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
sicherheit SteiniKeule PHP Tipps 2008 9 20.10.2008 06:48
[Erledigt] Sessions und Sicherheit Wolla PHP Tipps 2008 16 01.08.2008 19:33
aus SELECT Abfragen Hash bauen Reen_Sc Datenbanken 9 27.06.2008 18:48
Sicherheit in PHP robydog PHP Tipps 2008 52 10.05.2008 13:09
Sicherer Passwort Hash tomtaz PHP-Fortgeschrittene 14 17.03.2008 18:13
Name von Hash Feld auslesen Igäl PHP Tipps 2007 9 15.08.2007 15:06
Erfahrung mit Sessions ( Sicherheit ) GELight PHP Tipps 2006 6 11.08.2006 17:55
[Geklärt] MD5 Hash nochmals MD5 hash´n? PHP Tipps 2005-2 44 29.10.2005 14:46
GET Übergabe durch vorherigen md5 hash checken PHP Tipps 2005-2 4 27.10.2005 15:55
Sicherheit aufm Webserver ? Cyberbob_at_tot Off-Topic Diskussionen 7 17.10.2005 16:22
perl hash aus mysql blob mit php lesen PHP-Fortgeschrittene 6 07.07.2005 17:36
Sicherheit.... renzo PHP Tipps 2005-2 1 27.06.2005 15:53
2 Werte mit gleichem MD5 Hash webbi PHP Tipps 2005 4 09.03.2005 12:46
Doppelte Werte im Array löschen mittels hash PHP Tipps 2004-2 1 09.12.2004 11:43

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
url hash, hash url, url bewertung, php url hash, php hash url, url hash php, url sicherheit, hashurl, url to hash, hash url php, php hash in url, hash am ende der url, hash in url, php hash sicherheit, hash sicherheit, perl hash csv, php download anbieten pfad verstecken, wie sieht ein verbindungsprotokoll aus ?, bewertung url, verschlüsselte hash-url

Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 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