Edit report at https://bugs.php.net/bug.php?id=1003&edit=1
ID: 1003 Comment by: billhansachim at gmail dot com Reported by: hle at sjmercury dot com Summary: false to compile gd.c missing gdfontt.h (GD-1.3) Status: Closed Type: Bug Package: Compile Failure Operating System: SPARC solaris 2.6 PHP Version: 3.0.5 Block user comment: N Private report: N New Comment: * SQL-Injection - Verhinderung: - Mit PDO binden - Datenbanknutzer nur limitierte Rechte (NIE root nutzer!) - Beispiel: - Erwarteter Aufruf: http://webserver/cgi-bin/find.cgi?ID=42 - SQL-Injektion: http://webserver/cgi-bin/find.cgi? ID=42;UPDATE+USER+SET+TYPE='admin'+WHERE+ID=23 * Benutzerkennung - Sorgsam mit umgehen - Schema wie Vorname.Nachname vermeiden - Keine E-Mail Adressen * Enumerationsangriff - Erkennungsmerkmale: - Viele zugriffe von der gleichen IP - Zugriffszahlen überschreiten bestimmte Anzahl (Script!) - Zugriffsparameter werden nach einem regelmäÃigen Muster variiert - AbwehrmaÃnahmen: - Captcha - Zeitverzögerung des Zugriffs (exponentielle zeitsteigerung) * Benutzer Authentifizierung - mittels HTTP-Protokoll über Webserver (Liste mit User/PW) - per PHP-Skript ($_SERVER['PHP_AUTH_USER'],...) - per HTML-Formular und PHP-Skript mit PW/ID Feld * SSL - Ziele: - Vertraulichkeit - Integrität - Authentifizierung - Gültigkeit des Zertifikat: - Zertifikat muss von Zertifizierungsstelle validiert werden - Ablauflaufdatum * Eigenschaften von Webanwendungen - Plattformunabhängig - On the Fly and need deployment - Lebenslange Entwicklung - Ererignisgesteuerter Client * Ebenenmodell Sicherheitskonzept 0. Netzwerk/Host (absicherung des netzwerks/host) 1. System (absicherung der systemsoftware) 2. Technologie (richtige wahl der technologie(https/http)) 3. Implementierung (keine programmierfehler(sql-inj.)) 4. Logik (absicherung von prozessen(sichere pw erzwingen)) 5. Semantik (täuschungsschutz (phishing schutz)) * Informations-Bekanntgabe verhindern - Keine Kommentare in Code * Vorteile von Sessions: - Aufwendig errechnete Daten speichern - Benutzerführung über bestimmte Reihenfolgen - Zwischenspeichern von Daten, bevor sie in die Datenbank kommen (Warenkorb) * Nachteile von Sessions: - Verteilung von Serverlast mit Sessions erschwert - Server merkt nicht, ob eine Session beendet ist - Lesezeichen von Seiten mit Sessions kËnnen Probleme bringen * Session diebstahl nur durch raten möglich * Sessions sinnvoll absichern: - Zusätzliche IP/ID - Keine kritischen Infos in Sessions sichern * Erkennen von Manipulation - Zu viele oder zu wenige Form-Variablen - Falsche Ãbertragung (GET statt POST) - Session ID kein Standard * Reaktion auf Manipulation Sollte: - Verarbeitung abbrechen aber korrekte verarbeitung vortäuschen - Explizite Warnung ausgeben - Weiterleitung auf Fehlerseite Nicht: - Dienst einstellen - Ungefilterte Fehlermeldung - "Wegen Wartungsarbeiten nicht verfügbar" Previous Comments: ------------------------------------------------------------------------ [2012-06-27 08:39:23] unused dot spambox at gmail dot com <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:param name="von">0</xsl:param> <xsl:param name="bis">9999</xsl:param> <xsl:template match="/buchhandel"> <xsl:for-each-group select="buch[(@ersch-jahr>$von)and(@ersch- jahr<$bis)]" group-by="@ersch-jahr"> <xsl:sort select="@ersch-jahr"/> <p> <b><xsl:value-of select="current-grouping- key()"/></b><br/> <xsl:for-each select="current-group()"> <xsl:value-of select="position()"/> <xsl:text>. </xsl:text><xsl:value-of select="buchtitel"/><br/> </xsl:for-each> </p> </xsl:for-each-group> </xsl:template> <xsl:param name="ausrichtung">right</xsl:param> <xsl:template match="/buchhandel"> <html><head><title>jop</title><style>.reisen {background-color: green;}</style></head> <body> <xsl:apply-templates select="buch"/> </body> </html> <xsl:apply-templates select="buch"> <xsl:sort select="preis" data-type="number"/> </xsl:apply-templates> <xsl:for-each select="buch"> <xsl:sort select="buchtitel" data-type="text"/> <p><xsl:value-of select="buchtitel"/><xsl:text> </xsl:text></p> </xsl:for-each> <xsl:for-each-group select="buch" group-by="buchverlag"> <p><b><xsl:value-of select="current-grouping-key()"/></b> </p> <p><xsl:value-of select="current-group()/buchtitel" separator=", "/></p> </xsl:for-each-group> </xsl:template> <xsl:template match="buch"> <xsl:element name="p"> <xsl:attribute name="class" select="@kat" /> <xsl:value-of select="buchtitel"/><xsl:text> </xsl:text> <xsl:value-of select="buchverlag"/><xsl:text> </xsl:text> <xsl:value-of select="preis"/> </xsl:element> </xsl:template> <xsl:template match="buch"> <p style="text-align:{$ausrichtung}"> <xsl:value-of select="buchtitel"/><xsl:text> </xsl:text> <xsl:value-of select="buchverlag"/><xsl:text> </xsl:text> <xsl:value-of select="preis"/> </p> </xsl:template> <xsl:template match="buch"> <p> <xsl:value-of select="buchtitel"/><xsl:text> </xsl:text> <xsl:value-of select="buchverlag"/><xsl:text> </xsl:text> <xsl:call-template name="preis_template"> <xsl:with-param name="preis" select="preis"/> </xsl:call-template> </p> </xsl:template> <xsl:template name="preis_template"> <xsl:param name="preis"/> <xsl:choose> <xsl:when test="preis/@waehrung='Dollar'"> <xsl:value-of select="format- number($preis*0.68054,'0.00')"/> EUR (<xsl:value-of select="$preis"/> Dollar) </xsl:when> <xsl:otherwise> <xsl:value-of select="$preis"/> EUR </xsl:otherwise> </xsl:choose> </xsl:template> <!-- done down --> <xsl:template match="/fahrplan"> <html> <head><title>Von <xsl:value-of select="@von"/> nach <xsl:value-of select="@nach"/></title></head> <body> <h1>Von <xsl:value-of select="@von"/> nach <xsl:value-of select="@nach"/></h1> <ul><xsl:apply-templates select="verbindung"/> </ul> </body> </html> </xsl:template> <xsl:template match="verbindung"> <xsl:if test="fn:count(umsteigen) < 3"> <li> <b><xsl:value-of select="ab"/> - <xsl:value-of select="an"/></b><br/> Dauer: <xsl:value-of select="dauer"/> (<xsl:value-of select="zug"/>, <xsl:value-of select="umsteigen/zug" separator=", "/>) </li> </xsl:if> </xsl:template> <xsl:template match="/fluege"> <ul> <xsl:for-each select="flug"> <li> <xsl:value-of select="datum"/> (<xsl:value-of select="@id"/>) <br/> <xsl:variable name="von" select="von"/> <xsl:variable name="nach" select="nach"/> von <xsl:value-of select="/fluege/ort[@id = $von]"/> nach <xsl:value-of select="/fluege/ort[@id = $nach]"/> <br/> Klassen: <xsl:value-of select="klasse" separator=", "/> </li> </xsl:for-each> </ul> </xsl:template> <xsl:template match="/history"> <html><head><title>Wetter</title></head> <body> <dl><xsl:apply-templates select="weather"/></dl> <h3>Durchschnitt</h3> <xsl:value-of select="fn:format- number(sum(weather/rain) div count(weather/rain),'0.0')"/> </body> </html> </xsl:template> <xsl:param name="art">C</xsl:param> <xsl:template match="weather"> <dt><xsl:value-of select="@measured"/></dt> <xsl:choose> <xsl:when test="$art='F'"> <dd><xsl:value-of select="((temperature*9) div 5 )+32"/> F</dd> </xsl:when> <xsl:otherwise> <dd><xsl:value-of select="temperature"/> <xsl:value-of select="temperature/@unit"/></dd> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:param name="isin"></xsl:param> <xsl:template match="/aktien"> <html><head><title>Aktien</title></head> <body><xsl:apply-templates select="aktie"/></body> </html> </xsl:template> <xsl:template match="aktie"> <xsl:choose> <xsl:when test="(@isin = $isin) or ($isin = '')"> <p> Name: <xsl:value-of select="name"/><br/> Mittelwert: <xsl:value-of select="fn:format-number(sum(kurse/kurs/ausgabepreis) div count(kurse/kurs),'0.00')"/> </p> </xsl:when> </xsl:choose> </xsl:template> </xsl:stylesheet> ------------------------------------------------------------------------ [1998-12-23 18:15:28] rasmus Huh? The various font header files are part of the GD package. ------------------------------------------------------------------------ [1998-12-23 17:26:51] hle at sjmercury dot com ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=1003&edit=1