Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

kritische Stellen in php Code

Mitglied: ThermoTubbie

ThermoTubbie (Level 1) - Jetzt verbinden

25.10.2005, aktualisiert 28.10.2005, 4609 Aufrufe, 8 Kommentare

Auf was muss ich beim Programmieren meiner Website achten ?

Hallo,
ich bin schon seit einiger Zeit dabei meine Website auf php umzustellen. Die Website hat auch eine MySQL DB. Da ich keine Ahnung von möglichen Gefahren bei php habe, würde ich mich freuen, wenn ihr mir einige Stichwörter zu dem Thema geben würdet

mfg
ThermoTubbie
Mitglied: gocsp
25.10.2005 um 18:36 Uhr
Hallo,

was siehst du jetzt als gefahr?
Ist deine jetzige Homepage mit HTML programmiert?
Was machst du genau auf deiner Page, also Gästebuch, News, Login?

All dies müsste man wissen um sagen zu können wo du aufpassen solltest.

mfg
Bitte warten ..
Mitglied: Guenni
25.10.2005 um 20:26 Uhr
@ThermoTubbie

Hi,

die Gefahr bei PHP oder ähnl. Scriptsprachen liegt darin, dass diese
schreibend auf's Dateisystem des Webservers zugreifen können.

Deshalb bieten die meisten Webhoster diese Möglichkeit, z.B. PHP zu
nutzen, gar nicht erst an, oder wenn, muß diese Leistung extra bezahlt werden.

Gruß
Günni
Bitte warten ..
Mitglied: ThermoTubbie
25.10.2005 um 21:12 Uhr
Hi,
also die seite ist www.diabolotreff.de.vu und ich habe fast alles an Inhalt in eine DB gepackt, auf die DB hat man von der Seite aber keinen Schreibzugriffe. Gibt auch keinen Adminbereich (bin [noch] zu blöd).
Wenn die DB + Site dann hochgeladen ist werde ich auch alle Zugriffe von der Seite aus (also anzeigen von Datensätzen) über einen Nutzer mit keinen Schreibrechten machen lassen. Daher glaube ich meine DB sollte einigermaßen sicher sein...

Aber das glaube halt nur ich ;)

Sonst bei dem Rest des php Codes der nix mit der Db zutun hat habe ich kp ob man da blödsinn machen kann, wenn ich irgendwo gefuscht habe

Daher bin ich über jede Lücke froh!

Sonst wenn die Website wirklich fertig ist werde ich die hier eh nochmal posten damit ihr die auf Herz und Nieren prüfen könnt, aber das dauert noch etwas...

mfg
ThermoTubbie
Bitte warten ..
Mitglied: markus-so
27.10.2005 um 12:38 Uhr
Also was du wahrscheinlich meinst ist SQL-Injektion.

Also wenn z.B. ein Parameter mit GET uebergeben wird, der dann in einer Datenbankabfrage weiterverwendet wird.

Wenn also beispielsweise die Adresszeile so aussieht:
<font class="code">http://www.host.tld/index.php?id=3</font>"

und die SQL-Abfrage so aussieht:
<font class="code">$sql = "SELECT * FROM `table` WHERE `id` = '$id'";</font>

Koennte ein User an die Adresszeile einfach '; drop database;' anhaengen. Das gehoert ja dann schliesslich immer noch zu der GET-Variable 'id'.

Die SQL-Abfrage sieht dann so aus:
<font class="code">SELECT * FROM `table` WHERE `id` = 3; drop database;</font>

Mit GET uebergebene Parameter sollten also IMMER ueberprueft werden. Das selbe gilt auch fuer jede andere Schnittstelle, wo der User eingaben machen kann. Also Login-Felder etc.

Uebergebene Variablen sollten also erstens immer mit $_POST["bla"] oder $_GET["bla"] abgenommen werden und mit der Funktion addslashes() ueberprueft werden.

Also in dem Beispiel muesste das so aussehen: <font class="code">$id = addslashes($_GET["id"]);</font>

Wenn durch die Variable nur Zahlen uebergeben werden sollen, sollte man als zusaetzliche Sicherheit auch noch pruefen, ob der Inhalt auch nur aus Zahlen besteht:
<font class="code">if (!is_numeric($id)) die("Hacking Attemt");</font>

Einen sehr guten Artikel dazu findet man bei Wikipedia: http://de.wikipedia.org/wiki/SQL-Injection

Gruss Markus
Bitte warten ..
Mitglied: ThermoTubbie
27.10.2005 um 13:22 Uhr
HI,
vielen Dank für die Antwort, SQL-Injections habe ich glaube ausgeschlossen, aber da ich halt keine Ahnung von sowas habe Frage ich mal lieber nach ;)



Das ist die Funktion die bei mir das Get Array ausliest. Je nach Inhalt wird einer weiteren Funktione bestimmte Werte übergeben. Diese Funktion greift dann auf die DB zu.

Wenn ich das richtig sehe sollte man bei mir keinen eigenen Statements ausführen können oder ?

01.
		function LinkCheck() 
02.
		//überprüft welcher Link angeklickt wurde und startet die dazugehörenden Funktionen 
03.
04.
       		if(isset($_GET['site'])) 
05.
			{                       
06.
    			switch ($_GET['site']) 
07.
08.
    			case 'main':  
09.
    				createHeadLine("Startseite"); 
10.
					echo "Seite die bla bla bla bla..."; 
11.
				break; 
12.
				 
13.
				case 'tricks':  
14.
					createHeadLine("Tricks");				 
15.
					getSiteIDs("site_cat.*","site_cat.sc_caID","1");	 
16.
					createAdTable(); //Deine Seite ... 
17.
				break; 
18.
				[...] 
19.
				default: 
20.
					echo "Toll! Hast meine Seite kaputt gemacht, Bitte <a href=index_php.php?site=main>>>HIER<<</a>klicken ! 
21.
"; 
22.
					echo "Wrong Parameter, Please klick <a href=index_php.php?site=main>>>HERE<<</a>  
23.
"; 
24.
				 
25.
				break; 
26.
    			}} 
mfg
ThermoTubbie
Bitte warten ..
Mitglied: markus-so
27.10.2005 um 23:14 Uhr
da sehe ich keine Sicherheitsluecken. Sicherheitsluecken bestehen sowieso nur dann, wenn vom User veraenderbare Daten in dem php-Script ausgegeben werden. Also z.B. durch echo oder eben eine SQL-Abfrage.

Meiner Meinung nach besteht das groesste Sicherheitsrisiko bei SQL-Abfragen. Wenn die Rechte aber aussreichend eng gesetzt sind, kann der Hacker auch nur so viel machen, wie die Scripts.

In deinem Script wird nirgends das GET-Array ausgegeben, es besteht also kein Risiko. Man kann an dem uebergebenen Parameter veraendern, was man will - alles, was dadurch passieren kann ist, dass die switch-Abfrage ein anderes Ergebnis bringt und damit in einen anderen case-Zweig springt. Mehr als im case-Zweit steht kann aber auch nicht ausgefuehrt werden.

Gruss Markus
Bitte warten ..
Mitglied: ThermoTubbie
28.10.2005 um 12:26 Uhr
Hallo Markus,
vielen Dank für deine Antwort!
die Rechte sind so das man nur lesend auf die DB zugreifen kann und auch keine anderen Rechte vergeben kann.

mfg
ThermoTubbie
Bitte warten ..
Mitglied: markus-so
28.10.2005 um 12:45 Uhr
Dann sollte eine SQL-Injection nicht moeglich sein.

Markus
Bitte warten ..
Ähnliche Inhalte
Sicherheit

Kritische Sicherheitslücke in Cisco-Switches

Information von kgbornSicherheit

Falls ihr Cisco-Switches in eurer Firmenumgebung administriert, heißt es nachsehen. In diversen Modellen gibt es eine Remote Code Execution-Schwachstelle. ...

Visual Studio

Code-Optimierung

gelöst Frage von MarcoBornVisual Studio11 Kommentare

Hallo Forum, ich habe zur Zeit etliche Stellen in meinem Code, wo ich eine Variable mit etlichen Strings vergleichen ...

Windows Server

SBS2011 - Kritische Meldung aufgrund Datensicherungsprobleme

gelöst Frage von FA-jkaWindows Server5 Kommentare

Hallo, ich sichere meinen SBS2011 zusätzlich zum Acronis mit der Windows-Serversicherung (über SBS Konsole konfiguriert). Am 03.04. ist das ...

C und C++

Passwort im Code

Frage von leon123C und C++3 Kommentare

Hallo zusammen, ich stehe vor einem Problem das schon viele hatten aber überall gibt es keine wirkliche Lösung. Ich ...

Neue Wissensbeiträge
Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 7 StundenHumor (lol)

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 9 StundenExchange Server6 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 1 TagErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Vmware
VMware Updates gegen L1 Lücke
Information von sabines vor 1 TagVmware

Für die Vmware Produkte vCenter Server, ESXi, Workstation und Fusion stehe Updates bereit um die L1 Lücke zu schließen. ...

Heiß diskutierte Inhalte
Windows Server
Domäne einsilbig mit nur einem Namen benannt - sowie AD und MX auf einer VM Kardinalsfehler?
Frage von TomTestWindows Server48 Kommentare

Hallo liebe Freunde gepflegter Probleme, seit kurzem soll ich eine Domäne verwalten die zuvor von einem IT-Dienstleister erstellt und ...

Microsoft
VPN Verbindung kann nicht aufgebaut werden
Frage von AlexderITlerMicrosoft35 Kommentare

Hallo, Ich möchte an einem unserer PCs in unserer Tochterfirma eine VPN zu unserem Netzwerk einrichten. Das schlägt allerdings ...

DNS
Gibt es eine Art DNS Proxy?
Frage von icepietDNS16 Kommentare

Hallo Nerds, Ich würde gerne folgendes machen: ts.domain.de:3389 soll auf 1.2.3.4:3389 auflösen ts2.domain.de:3389 soll auf 1.2.3.4:3390 auflösen Gibt es ...

Windows Server
Windows Server per Web auf Daten zugreifen und verwalten
Frage von matze2090Windows Server16 Kommentare

Hallo, ich würde gerne von außen auf meinem Windows Server zugreifen um auf meine Daten zu verwalten. Meine frage ...