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