Informatik Projekt so realisierbar ?

Meine natürliche Paranoia meldet sich bei Sachen wie
PHP:
echo $_GET[...]
oder
PHP:
echo $_POST[...]
oder
PHP:
echo $_COOKIE[...]
.

Grund ist dieser:
Der Nutzer kann selbst bestimmen, was in diesen Variablen steht. Mit etwas bösem Willen schreibt der Nutzer da bösartigen Code (z.B. Javascript) rein, der dann einfach ohne Filterung an den Browser weitergegeben wird. Das wäre die typische XSS-Lücke.
Abhilfe schafft die Methode htmlspecialchars.
 
Danke für eure Hilfe :) ich hab dann letztendlich 13 punkte dafür bekommen. Wenn jemand weitermachen will :

Hier nochmal der endstand des Codes :

<html>
<body style="background-color:#FF0000">
<head><title>Hydrandmap</title>
<body>
<h1 align="center"><font color="#FFFFFF">Hydrantenmap</font></h1>
</head>

<form>
<form action="hydrant.php" method="post">
<input type="text" size="17" name="such">
<input type="submit" value="OK">
</form>

<?php


echo "$such if( is set( $_POST[street] ) )";


$res = mysql_query("SELECT * FROM hydrant
WHERE street LIKE '%$such%' );


while ($row = mysql_fetch_array($res)){
$street = $row['street'];
$plz = $row['plz'];
$durchmesser = $row['durchmesser']};

if $street isset : echo ("$street<br>$plz<br>$durchmesser<br>");


?>



</body>

</html>

macht damit was ihr wollt.
 
Dafür bekommt man 13 Punkte? :freak:
Man bin ich geschockt von deiner Schule, deinem Lehrer oder den absolut jämmerlichen Erwartungen...

Sei mir nicht böse, aber das hätte jeder halbwegs intelligente 15jährige an einem Tag mit einem PHP-Tutorial hinbekommen. Das wäre mit einem einfachen Copy&Paste von 2 Tutorials gegangen...
Oder einem ganzen Wochenende, wenn er wirklich das ganze gelernt hätte, um es dann anzuwenden.

Das Quakenet/#php-Tutorial macht schon weit mehr, als was du hier vorgelegt hast.
 
Zuletzt bearbeitet:
Ja und an solchen Noten muss ich dann meine Leistung messen lassen, bei allen Dingen, wo nach Note entschieden wird...
ZVS, NC, Ausbildungsplatz etc.
 
Gehts nur mir so, oder schreit das hier gerade zu nach ner Injection Attacke?


echo "$such if( is set( $_POST[street] ) )";


$res = mysql_query("SELECT * FROM hydrant
WHERE street LIKE '%$such%' );



Und auch von meiner Seite: Nix gegen dich, Getränkeautomat, aber deine Lehrer gehören bei der Benotung an die Wand gestellt. Das Endergebnis ist NICHTS. Gar nichts... Anfangs klang das Projekt ja noch richtig interessant & umfangreich, mit Einbindung einer Karten-API etc... Das, was hier am Ende übrig geblieben ist, ist ne simple SQL-Abfrage mit zeilenweiser Ausgabe... Oh, noch nicht einmal das.

while ($row = mysql_fetch_array($res)){
$street = $row['street'];
$plz = $row['plz'];
$durchmesser = $row['durchmesser']};

if $street isset : echo ("$street<br>$plz<br>$durchmesser<br>");

Spätestens hier hätte ich dich noch ein ganz paar Punkte abgestuft. Was machst du, wenn in der Straße 2 oder mehr Hydranten stehen? Was nutzt mir denn die Info, dass in der Straße ein Hydrant steht, wenn ich an der Hauptstraße 2b zu einem Brand gerufen werde, wenn ich von der Software nur erfahre, dass irgendwo an der Hauptstraße (z.B. vor Nummer 56) ein Hydrant steht?
Der einzig korrekte Weg wäre, alle Hydranten einer Straße nebst nächstgelegener Hausnummer auszugeben oder, noch besser, über eine Karten-API den wirklich nächstgelegenen Hydranten zu bestimmen, unabhängig von der Straße. Was ist, wenn es auf der Hauptstraße 7 brennt, der nächste Hydrant auf der Hauptstraße aber erst bei Nummer 56 ist. Gleichzeitig ist Nr7 ein Eckhaus, und auf Querstraße 5 (direkt an der Kreuzung) ist ein Hydrant?

Nene, von mir hättest du hier nur ein "gerade so bestanden" bekommen. Die Software ist viel zu lückenhaft für die Zeit, die du dafür hattest. Im Berufsleben kommst du mit solchen Ergebnissen keine 5 Meter weit, egal in welcher Branche. Dich hier mit 13 Punkten noch zu belohnen ist ein absolutes Fehlverhalten des Lehrers.
 
Daaron schrieb:
Gehts nur mir so, oder schreit das hier gerade zu nach ner Injection Attacke?

SQL und XSS. Zwei böse Lücken in zwei Zeilen Code ist dann doch beachtlich.

Aber OK, die Kernpunkte des Themas liegen sicherlich woanders. Das könnte man noch verstehen. Dem Threadstarter kann man da keinen Vorwurf machen wenn man sowas schon lesen muss:

PHP ist der Tipp von meinem Informatiklehrer

...

Leider scheitern wir im moment alle (auch unser lehrer) an der Formularauswertung

Also da hätte ich mir auch genau überlegt, wie viel Aufwand ich da noch investiere.

Wenn man die Parameter betrachtet (zu dritt, 24h Arbeitsstunden Zeit, Lösung aus Forum geholt) und das Ergebnis (13 Punkte, ca. 20 Zeilen Code, der schlecht ist), dann kann man höchstens wegen dem Bildungssystem heulen.


edit:

Bin kein PHP Programmierer, deshalb die Frage, was soll das hier sein?
PHP:
if $street isset : echo ("$street<br>$plz<br>$durchmesser<br>");

Scheinbar musste das Programm nicht mal vorgeführt werden, geschweige denn überhaupt jemals laufen. Sollte das hingegen eine neue fancy art der Kontrollstruktur sein, dann nehme ich das zurück.
 
Zuletzt bearbeitet:
wir mussten das projekt leider immer weiter zusammenkürzen, da es sonst für uns mit null grundkentnissen nciht realisierbar war. Ind en 2 stunden mussten wir versuchen uns html und php und mysql beizubringen und dazu noch zu arbeiten. Leider haben wir auch nicht die benötigte Unterstützung durch eine Lehrkraft bekommen. Wir waren dann sogar nur noch zu 2. Hätten wir mehr zeit gehabt hätten wir das alles umgesetzt. Aber es war das was im rahmen der Möglichkeiten das beste war.
 
Zurück
Oben