AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm- und Quellcodesicherheit

Ein Thema von Yheeky · begonnen am 15. Okt 2008 · letzter Beitrag vom 15. Okt 2008
Antwort Antwort
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#1

Programm- und Quellcodesicherheit

  Alt 15. Okt 2008, 14:16
Hi,

ich programmiere derzeit ein Projekt mit dem ich über eine Win32-Anwendung auf meinen Server zugreife. Diese mache ich über die Komponente idHTTP von den Indys und sende Daten an PHP-Dateien.

z.B.

Code:
[…]?login.php&username=Test&password=testpsw
Die Aufrufe stehen natürlich in meiner Anwendung, auf dem Server werden die Aufrufe aber vorher über „mysql_real_escape_string“ geprüft, so dass diese nicht manipuliert werden können.

Nun habe ich dazu mehrere Fragen:
1.) Inwiefern ist mein Projekt sicher, wenn die PHP-Abfragen über eine Win32 Applikation aufgerufen werden (vorausgesetzt, die PHP-Funktionen sind gut programmiert worden)?
2.) Würde eine Lösung über ASP.net mehr Sinn machen (z.B. über C# und LINQ), weil man hier keine Quellcode-Daten einsehen kann?
3.) Gibt es sowas wie LINQ auch für Delphi? Dann könnte man ja auch über die Entwicklungsumgebung vom BDS etwas machen…

Bin gespannt, was ihr zum Thema zu sagen habt
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Programm- und Quellcodesicherheit

  Alt 15. Okt 2008, 14:32
zu 1: Welche Sicher meinst du? Sicher gegenüber Manipulation oder gegenüber Abfriff der Zugangsdaten

zu 2: Jedliche Daten die beim Client liegen können manipuliert werden. Selbst bei einer ASP.NET-Anwendung können die Post-Daten/Replies manipuliert werden (Eingabekontrolle auf Client reicht nicht).

zu 3: LINQ bei einer Clientanwendung bringt dir im Bereich Sicherheit nix. "Einfach" einen Proxie entwickeln und die Daten "on the fly" manipulieren.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#3

Re: Programm- und Quellcodesicherheit

  Alt 15. Okt 2008, 14:40
Zitat von Bernhard Geyer:
zu 1: Welche Sicher meinst du? Sicher gegenüber Manipulation oder gegenüber Abfriff der Zugangsdaten
Beides

Zitat von Bernhard Geyer:
zu 2: Jedliche Daten die beim Client liegen können manipuliert werden. Selbst bei einer ASP.NET-Anwendung können die Post-Daten/Replies manipuliert werden (Eingabekontrolle auf Client reicht nicht).
Okay, heisst letztendlich: die Oberfläche ist egal (ob Win32 oder ASP.net...kontrolliert werden muss immer auf dem Server, richtig?

Zitat von Bernhard Geyer:
zu 3: LINQ bei einer Clientanwendung bringt dir im Bereich Sicherheit nix. "Einfach" einen Proxie entwickeln und die Daten "on the fly" manipulieren.
LINQ bringt auch unter ASP.net nichts?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Programm- und Quellcodesicherheit

  Alt 15. Okt 2008, 14:47
zu 1: Du kannst nur durch Verschleierung bzw. durch Verschlüsselung die Manipulation erschweren

zu 2: Ja.

zu 3: Hab ich nicht gemeint. LINQ im Bezug auf Sicherheit/Manipulation. Auf BDS/CDS-Seite wird nicht mehr viel kommen. Ich denke in 2 Wochen (zur EKON) dürfte die zukünftige Strategie von Delphi/Codegear und Delphi klarer sein. Es soll ja ein Plugin für VS.NET geben um .NET 3.5 mit einer Pascal-Like-Sprache vollständig zu unterstützen
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#5

Re: Programm- und Quellcodesicherheit

  Alt 15. Okt 2008, 14:54
Was „on the fly“ ist würde mich noch interessieren.

Okay, zusammengefasst:
Egal wie leicht oder schwer die Manipulation auf der Client-Seite ist, ich muss den Input auf der Serverseite nochmals abfragen und wenn das gut programmiert ist, ist die Anwendung entsprechend sicher. Richtig?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Programm- und Quellcodesicherheit

  Alt 15. Okt 2008, 14:55
Deine Zugansdaten werden immer mehr oder weniger im Klartext in der Exe-datei stehen und können deshalb auch realtiv leicht ausgelesen werden. Und wenn du keine verschlüsselte Verbindung hast, werden die daten auch im Klartext übertragen und können so mitgelesen werden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#7

Re: Programm- und Quellcodesicherheit

  Alt 15. Okt 2008, 14:55
Zitat von Yheeky:
1.) Inwiefern ist mein Projekt sicher, wenn die PHP-Abfragen über eine Win32 Applikation aufgerufen werden (vorausgesetzt, die PHP-Funktionen sind gut programmiert worden)?
Du kannst nie ausschliessen oder gar verhindern, das irgendwer Deine PHP-Scripte manuell mit beliebig gewählten Parametern aufruft. Ergo: die PHP-Scripte müssen darauf ausgelegt sein, dass sie nicht nur von Deiner anwendung immer 'richtig' benutzt werden, sondern sie müssen auch beliebige fehlerhafte Eingaben richtig handhaben können. Und sei es, dass einfach nur 'gar nichts' passiert und sich das Script zur Sicherheit selber beendet.

Zitat von Yheeky:
2.) Würde eine Lösung über ASP.net mehr Sinn machen (z.B. über C# und LINQ), weil man hier keine Quellcode-Daten einsehen kann?
Häh?

Erstens: Weder bei ASP.NET noch bei PHP sieht man den Quellcode. Okay, bei letzterem schon, wenn man entsprechende Rechte auf dem Server hat. Aber wenn man so weitgehende Rechte hat, dann kann man in der Regel sogar die Anwendung komplett umgehen (=> Datenbanklogin auslesen und direkt auf die DB...).

Zweitens: LINQ hilft in Hinblick auf Sicherheit gar nicht. LINQ ist - um das Schlagwort mal auseinander zu nehmen - 'nur' ein bisschen Compilermagic und eine handvoll vorgefertigter Funktionen, um Code zu sparen. LINQ kann nichts, was man nicht auch so mit ein paar Schleifen, ein paar Methoden und etwas Glue-Code dazwischen selber machen könnte.

Zitat von Yheeky:
3.) Gibt es sowas wie LINQ auch für Delphi? Dann könnte man ja auch über die Entwicklungsumgebung vom BDS etwas machen…
Es gibt Delphi.NET - und das kann ASP.NET. Aber damit würde ich lieber noch ein klein wenig warten, bis Prism 8die neue Version von Delphi für .NET) draussen ist Die neue kann auch LINQ. Aber wie schon bei 2. gesagt: LINQ hilft Dir hier nichts.

Was willst Du denn eigentlich genau machen?
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Programm- und Quellcodesicherheit

  Alt 15. Okt 2008, 14:58
Zitat von Phoenix:
Erstens: Weder bei ASP.NET noch bei PHP sieht man den Quellcode. Okay, bei letzterem schon, wenn man entsprechende Rechte auf dem Server hat. Aber wenn man so weitgehende Rechte hat, dann kann man in der Regel sogar die Anwendung komplett umgehen (=> Datenbanklogin auslesen und direkt auf die DB...).
Aber der von ASP.NET und PHP erzeugte HTML und JavaScript-Code geht zum Client und ist damit manipulierbar.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#9

Re: Programm- und Quellcodesicherheit

  Alt 15. Okt 2008, 15:03
Das sowieso. Deswegen darf man sich auch nie auf das korrekte Verhalten des eigenen JavaScriptes verlassen, sofern es den Server anspricht. Wenn der Client mein GUI-Script kaputt macht und die Seite nicht mehr richtig bedienbar ist: Selber schuld.
Wenn er aber meinen Server mit Mülldaten lahmlegt, dann hab ich irgendwo richtig Scheisse gebaut .

Wichtig ist die Eingabevalidierung auf dem Server. Jede Information, die den Server erreicht, ist potentiell böse.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#10

Re: Programm- und Quellcodesicherheit

  Alt 15. Okt 2008, 19:11
Zitat von Phoenix:
Du kannst nie ausschliessen oder gar verhindern, das irgendwer Deine PHP-Scripte manuell mit beliebig gewählten Parametern aufruft. Ergo: die PHP-Scripte müssen darauf ausgelegt sein, dass sie nicht nur von Deiner anwendung immer 'richtig' benutzt werden, sondern sie müssen auch beliebige fehlerhafte Eingaben richtig handhaben können. Und sei es, dass einfach nur 'gar nichts' passiert und sich das Script zur Sicherheit selber beendet.
Ja natürlich, aber ich kann nicht verhindern, dass jemand meine PHP-Datei mit 100 Parametern aufruft, obwohl maximal nur 3 verarbeitet werden, oder?! Ich habe meine PHP-Datei so aufgebaut, dass ein "Befehl" vorgegeben wird (z.B. Login, Logout, etc) und dann Parameter folgen, die verarbeitet werden. Wenn in Befehl eine fremder Eingabe steht, passiert garnichts.

Zitat von Phoenix:
Erstens: Weder bei ASP.NET noch bei PHP sieht man den Quellcode. Okay, bei letzterem schon, wenn man entsprechende Rechte auf dem Server hat. Aber wenn man so weitgehende Rechte hat, dann kann man in der Regel sogar die Anwendung komplett umgehen (=> Datenbanklogin auslesen und direkt auf die DB...).
Naja, wenn der Server so schlecht eingerichtet ist, dass jeder darauf zugreifen kann dann ist das klar Nehmen wir mal an, der Server ist professionell eingerichtet worden.

Zitat von Phoenix:
Es gibt Delphi.NET - und das kann ASP.NET. Aber damit würde ich lieber noch ein klein wenig warten, bis Prism 8die neue Version von Delphi für .NET) draussen ist Die neue kann auch LINQ. Aber wie schon bei 2. gesagt: LINQ hilft Dir hier nichts.

Was willst Du denn eigentlich genau machen?
Okay, ich dachte nur an LINQ für den Fall, dass man bei ASP.NET Projekten nicht an den Quellcode kommt, denn dann könnte ich alles in einem Projekt verwirklichen und müsste nicht Delphi- und PHP-Code schreiben.

Was ich genau mache kann ich natürlich nicht verraten aber hier vielleicht ein Beispiel:
Stelle dir eine Plattform wie z.B. Wer-kennt-Wen oder StudiVZ vor (keine Angst, ich mache nichts in die Richtung, aber von den Funktionen her, kann man´s ganz gut vergleichen). Ich habe ein Login/Logout und kann bestimmte Profile anschauen oder nicht. Mit einfachem Ändern der Parameter soll es aber nicht doch möglich sein, an gesperrte Profile zu kommen. Wer-kennt-Wen arbeitet mit PHP und mit einem Frontend (was in meinem Fall dann Delphi darstellen würde).
Falls du möchtest, kann ich aber gern genauer auf meine Idee eingehen, aber ich hoffe du hast es schonmal im Ansatz verstanden.
  Mit Zitat antworten Zitat
Antwort Antwort


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz