php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack (1) Themen-Optionen Thema bewerten
Alt 05.06.2008, 19:24   1 links from elsewhere to this Post. Click to view. #1 (permalink)
Neuer Benutzer
 
Registriert seit: 05.06.2008
Beiträge: 3
Stranger befindet sich auf einem aufstrebenden Ast
Standard Eine 1 im Browser, keine 1 im Code...

Hallo erstmal.

Nachdem ich zwar schon ein paar Sachen mit PHP gemacht habe, aber meistens unter Anleitung und auch nie von vorne sondern eher von mittendrin, habe ich beschlossen, ich schnapp mir mal mein PHP Einsteigerbuch und arbeite das mal von vorne nach hinten durch.

So weit so gut. Ich bin nun an einem Punkt, wo man eine "Passwortabfrage" programmiert. Ich würd das zwar nie so nutzen, aber wie gesagt, ich wollte von Seite 1 bis zur letzten

Also, die Abfrage besteht aus 4 Dateien:

1. Passwort.htm. Diese Datei enthält lediglich ein kleines Formular um den Namen und das Passwort eingeben zu könne:

Code:
<html>
<head>
<title>Passwort</title>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">

<form method="post" action="auswertungpass.php">
 Username: <input name="user"><br>
 Passwort: <input name="pass" type="password"><br>
 <input type="submit" value="Senden">
 </form>


</body>
</html>
2. auswertungpass.php. Diese Datei prüft halt, ob die eingegebenen Daten den von mir in der #up.php eingegebenen entsprechen:

Code:
<?php
include("#up.php");

$user = $_POST['user'];
$pass = $_POST['pass'];

if ($user == $user_ok and $pass == $pass_ok)
{
 echo include("#geheim.inc");
}
else
{
 echo "Leider hast du ein falsches Passwort und/oder einen falschen Username eingegeben... :'-(";
}
?>
3. #up.php:

Code:
<?php
  $user_ok = "Nilpferd";
  $pass_ok = "hippo";
?>
Und zu guter Letzt:

4. #geheim.inc. Diese Datei enthält die Ausgabe, die nach einer korrekten Eingabe von Name und Passwort erfolgt:

Code:
<html>
<head>
<title>Glückwunsch! Du hast diese höchst geheime Seite erreicht ;)</title>
 <style type = "text/css">
<!--
 h1 {text-align: center; font-size: 40}
 p  {text-align: center; font-size: 22; color: red}
-->
</style>

</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">

<h1>Es funktioniert!</h1>
<p>Die Passwortabfrage wäre dann damit auch erledigt.</p>
</body>
</html>
Das funktioniert auch alles so wie es soll. ABER:
Sobald ich im Browser die letzte Seite erreicht habe (also die Seite nach korrekter Eingabe), steht eine 1 unterhalb der von mir definierten Ausgabe.
Hier mal der Code, den ich über Seitenquelltext anzeigen vom Browser bekomme:

Code:
<html>
<head>
<title>Gl&uuml;ckwunsch! Du hast diese h&ouml;chst geheime Seite erreicht ;)</title>
 <style type = "text/css">
<!--
 h1 {text-align: center; font-size: 40}
 p  {text-align: center; font-size: 22; color: red}
-->
</style>

</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">

<h1>Es funktioniert!</h1>
<p>Die Passwortabfrage w&auml;re dann damit auch erledigt.</p>
</body>

</html>1
Wie ihr sehen könnt, ist der Code identisch mit meinem, abgesehen von der 1 nach dem schließenden HTML Tag. Ich hab wirklich keine Ahnung wo die herkommt.

Ich bin jede meiner Dateien mehrmals durchgegangen, auch mit Suchfunktion, ausser den 1en in den H1 Tags gabs keine.

Ich hoffe ihr könnt mir da weiterhelfen.

Danke schonmal

-Stranger
Stranger ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 05.06.2008, 19:27   #2 (permalink)
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 25.134
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 sein
Standard

Willkommen Stranger!

echo include("#geheim.inc");

Include liefert einen boolschen Returnwert, den echo implizit in String umwandelt.
__________________
--
„Eins ist Fakt: Gescannt wird nackt!“

Privatsphäre 2.0 - Nacktscanner mit Eyetracking.
Unser Flugzeug darf kein geschlechtsfreier Raum sein.
--
nikosch ist offline  
Alt 05.06.2008, 19:50   #3 (permalink)
Neuer Benutzer
 
Registriert seit: 05.06.2008
Beiträge: 3
Stranger befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank erstmal. Ich hab hier auch die PHP 5 Schnellreferenz von Markt und Technik, aber auch da fand ich den Hinweis von dir nicht drin. Das hab ich jetzt zum ersten mal gehört mit dem boolschen Wert.

Ich hab jetzt folgendes gemacht:

Die auswertungpass.php:

Code:
<?php
include("#up.php");

$user = $_POST['user'];
$pass = $_POST['pass'];

if ($user == $user_ok and $pass == $pass_ok)
{
 include("#geheim.inc");
 echo $ausgabe;
}
else
{
 echo "Leider hast du ein falsches Passwort und/oder einen falschen Username eingegeben... :'-(";
}
?>
und meine #geheim.inc:

Code:
<?php

$ausgabe = "
<html>
<head>
<title>Glückwunsch! Du hast diese höchst geheime Seite erreicht ;)</title>
 <style type = 'text/css'>
<!--
 h1 {text-align: center; font-size: 40}
 p  {text-align: center; font-size: 22; color: red}
-->
</style>

</head>
<body text='#000000' bgcolor='#FFFFFF' link='#FF0000' alink='#FF0000' vlink='#FF0000'>

<h1>Es funktioniert!</h1>
<p>Die Passwortabfrage wäre dann damit auch erledigt.</p>
</body>
</html>"

?>
ich hab also aus dem HTML Code, der in der geheim.inc stand einen PHP Code gemacht und den gesamten PHP Code innerhalb von der geheim.inc in die Variable $ausgabe gepackt. Dann die geheim.inc in die auswertungpass.php integriert und nur noch die variable ausgeben lassen.

Ist das eine gute Lösung? Wie gesagt, steh noch recht am Anfang, viel mehr als nen paar if Abfragen und Schleifen hab ich noch nicht groß gemacht / machen müssen (das aber dafür reichlich )

Danke nochmal, mein Tag ist gerettet


EDIT: Ok, die Frage, ob die Lösung gut ist hat sich erledigt. Ich hab vergessen, dass durch das include der php Modus verlassen wird... Naja, Anfänger halt

Danke nochmal.

Geändert von Stranger (05.06.2008 um 20:48 Uhr).
Stranger ist offline  
Alt 06.06.2008, 05:40   #4 (permalink)
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 3.713
Chriz ist ein sehr geschätzer MenschChriz ist ein sehr geschätzer MenschChriz ist ein sehr geschätzer MenschChriz ist ein sehr geschätzer Mensch
Standard

Lass die Raute weg und nenn inc in php oder inc.php um, diese Stuempertricks fuer den Browser sind wirklich nicht mehr zeitgemaess.
__________________
„Was interessiert mich mein Geschwätz von gestern.“ - Konrad Adenauer
Chriz ist gerade online  
Alt 06.06.2008, 07:50   #5 (permalink)
Neuer Benutzer
 
Registriert seit: 06.06.2008
Beiträge: 4
Karsten befindet sich auf einem aufstrebenden Ast
Standard Habe ein ähnliches Problem

Hallo erstmal,

ich habe ein ganz ähnliches Problem.
Ich includiere ein Datei (parameter.inc) in eine *.php Datei.

In der parameter.inc steht foldendes:

PHP-Code:
 <?php
 $variable1 
"abs";
 
$variable2 "xyz";
 
?>
Die *.php sieht wie folgt aus.

PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<?php
require_once("parameter.inc");
?>
<html>
<head>
  usw....
In der Datei die dann im Browser ausgegeben wird stehen immer die gleichen Steuerzeichen:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
   usw....
Woher kommen die 3 Steuerzeichen ("")? Ich weiß mir keinen Rat mehr. HILFE

Vielen Dank für die Hilfe.
Karsten
Karsten ist offline  
Alt 06.06.2008, 07:53   #6 (permalink)
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 3.713
Chriz ist ein sehr geschätzer MenschChriz ist ein sehr geschätzer MenschChriz ist ein sehr geschätzer MenschChriz ist ein sehr geschätzer Mensch
Standard

Fix geraten: "parameter.inc" wurde mit UTF-8-BOM abgespeichert:
Byte Order Mark – Wikipedia
__________________
„Was interessiert mich mein Geschwätz von gestern.“ - Konrad Adenauer
Chriz ist gerade online  
Alt 06.06.2008, 08:48   #7 (permalink)
Neuer Benutzer
 
Registriert seit: 06.06.2008
Beiträge: 4
Karsten befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank für die super schnelle Hilfe.

Ja du hast recht. Mit Hilfe eines HEX-Editors konnte ich die 3 Steuerzeichen sehen. Ich kann es zur Zeit leider noch nicht ausprobieren.

Aber vielen Dank.
Karsten
Karsten ist offline  
Alt 06.06.2008, 12:44   #8 (permalink)
Neuer Benutzer
 
Registriert seit: 05.06.2008
Beiträge: 3
Stranger befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Lass die Raute weg und nenn inc in php oder inc.php um, diese Stuempertricks fuer den Browser sind wirklich nicht mehr zeitgemaess.
Wie gesagt, ich wollt halt ganz von Vorn anfangen. Also mach ichs erstmal wies im Buch steht. Ich würd das wie gesagt so eh nicht einsetzen, da find ich die htacces Variante besser.

Trotzdem danke für den Tipp.

-Stranger
Stranger ist offline  
Alt 06.06.2008, 13:01   #9 (permalink)
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.034
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Wenn das so
PHP-Code:
echo include("#geheim.inc"); 
im Buch steht, dann solltest du dieses rasch wegschmeissen.
Zitat:
Zitat von Stranger
da find ich die htacces Variante besser
Ist dafür viel weniger sicher
__________________
Gruss
L
lazydog ist offline  
Alt 06.06.2008, 14:29   #10 (permalink)
Erfahrener Benutzer
 
Registriert seit: 24.05.2008
Beiträge: 150
PHP-Kenntnisse:
Anfänger
Griffith befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von lazydog Beitrag anzeigen
Ist dafür viel weniger sicher
Du meinst damit die Passwörter, welche mittels des Crypt-Mechanismusses kodiert wurden, oder?

Er möchte den Zugriff aber sowieso gänzlich verbieten. Und ich wüsste nicht was an einem "Deny from all" in der .htaccess so unsicher sein soll.

Man hat zwei Möglichkeiten:

Man vebietet den Zugriff auf die einzelnen zu schützenen Dateien:
Code:
<Files geheim.htm>
order deny,allow
deny from all
</Files>

<Files up.inc>
order deny,allow
deny from all
</Files>
Oder man legt alle zu schützenden Dateien in einem gemeinsamen Ordner ab, auf den man von außen überhaupt nicht mehr zugreifen kann. PHP kann das aber trotzdem noch.
Code:
Order deny,allow
Deny from all
Ich finde die .htaccess-Lösung am saubersten.
Noch schöner wäre es natürlich, wenn man den Zugriff direkt mit den Unix-Rechten verhindern könnte. Allerdings könnte man dann auch nicht mehr über PHP drauf zugreifen.
Griffith ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

 


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

LinkBacks (?)
LinkBack to this Thread: http://www.php.de/php-tipps-2008/1573-eine-1-im-browser-keine-1-im-code.html
Erstellt von For Type Datum
Passwort-Infos » Re: Das Passwort ist immer die Schwachstelle! - Schwachstellen This thread Pingback 17.06.2008 11:02

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] PHP Code aus Datenbank ayti PHP Tipps 2008 8 26.05.2008 19:40
Design und Code Trennen TeazY PHP Tipps 2008 29 21.05.2008 12:08
Nur bestimmten Html Code zulassen? litterauspirna PHP Tipps 2008 5 29.04.2008 12:30
einfacher Code zum Einbinden von "Inhaltsbereichen" MaxDittmann PHP-Fortgeschrittene 6 01.10.2007 15:54
php code wird im browser ausgegeben janni PHP Tipps 2006 7 28.03.2006 16:01
PHP: Wie parst der Server den Code am schnellsten? SvenLittkowski PHP Tipps 2007 4 17.12.2005 10:58
bb code in htm code wandeln janni PHP Tipps 2007 2 04.11.2005 22:36
[Erledigt] JS Code in PHP Code?? HTML, Usability und Barrierefreiheit 12 08.08.2005 15:45
Seite 1/2/3..Code was haltet ihr davon? Matthiasnet PHP Tipps 2005-2 4 29.07.2005 20:29
[Erledigt] Lesbarkeit von Code Off-Topic Diskussionen 6 14.07.2005 14:48
code aus db mit eval replacen chief-thomson PHP Tipps 2005-2 4 08.07.2005 15:33
Fehler im Code, kann ihn nicht finden PHP Tipps 2005 9 16.05.2005 16:17
Bestätigungmail code? PHP Tipps 2005 7 16.05.2005 13:18
[Erledigt] bb code innerhalb von bb code geht nicht PHP Tipps 2007 2 12.01.2005 17:29


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:05 Uhr.




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