didou Sun Mar 21 11:45:37 2004 EDT
Modified files:
/phpdoc/en/security database.xml
Log:
adding php tags
http://cvs.php.net/diff.php/phpdoc/en/security/database.xml?r1=1.2&r2=1.3&ty=u
Index: phpdoc/en/security/database.xml
diff -u phpdoc/en/security/database.xml:1.2 phpdoc/en/security/database.xml:1.3
--- phpdoc/en/security/database.xml:1.2 Wed Feb 18 12:09:16 2004
+++ phpdoc/en/security/database.xml Sun Mar 21 11:45:37 2004
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.2 $ -->
+<!-- $Revision: 1.3 $ -->
<!-- splitted from ./index.xml, last change in rev 1.66 -->
<sect1 id="security.database">
<title>Database Security</title>
@@ -117,6 +117,8 @@
<title>Using hashed password field</title>
<programlisting role="php">
<![CDATA[
+<?php
+
// storing password hash
$query = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",
addslashes($username), md5($password));
@@ -133,6 +135,8 @@
else {
echo "Authentication failed for $username.";
}
+
+?>
]]>
</programlisting>
</example>
@@ -166,12 +170,16 @@
</title>
<programlisting role="php">
<![CDATA[
+<?php
+
$offset = argv[0]; // beware, no input validation!
$query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
// with PostgreSQL
$result = pg_exec($conn, $query);
// with MySQL
$result = mysql_query($query);
+
+?>
]]>
</programlisting>
</example>
@@ -224,10 +232,14 @@
</title>
<programlisting role="php">
<![CDATA[
+<?php
+
$query = "SELECT id, name, inserted, size FROM products
WHERE size = '$size'
ORDER BY $order LIMIT $limit, $offset;";
$result = odbc_exec($conn, $query);
+
+?>
]]>
</programlisting>
</example>
@@ -260,7 +272,9 @@
</title>
<programlisting role="php">
<![CDATA[
+<?php
$query = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";
+?>
]]>
</programlisting>
</example>
@@ -272,11 +286,16 @@
<informalexample>
<programlisting role="php">
<![CDATA[
+<?php
+
// $uid == ' or uid like'%admin%'; --
$query = "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '%admin%'; --";
// $pwd == "hehehe', admin='yes', trusted=100 "
-$query = "UPDATE usertable SET pwd='hehehe', admin='yes', trusted=100 WHERE ...;"
+$query = "UPDATE usertable SET pwd='hehehe', admin='yes', trusted=100 WHERE
+...;";
+
+?>
]]>
</programlisting>
</informalexample>
@@ -288,8 +307,12 @@
<title>Attacking the database hosts operating system (MSSQL Server)</title>
<programlisting role="php">
<![CDATA[
+<?php
+
$query = "SELECT * FROM products WHERE id LIKE '%$prod%'";
$result = mssql_query($query);
+
+?>
]]>
</programlisting>
</example>
@@ -299,10 +322,14 @@
<informalexample>
<programlisting role="php">
<![CDATA[
+<?php
+
$query = "SELECT * FROM products
WHERE id LIKE '%a%'
exec master..xp_cmdshell 'net user test testpass /ADD'--";
$result = mssql_query($query);
+
+?>
]]>
</programlisting>
</informalexample>
@@ -369,12 +396,16 @@
<title>A more secure way to compose a query for paging</title>
<programlisting role="php">
<![CDATA[
+<?php
+
settype($offset, 'integer');
$query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
// please note %d in the format string, using %s would be meaningless
$query = sprintf("SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET %d;",
$offset);
+
+?>
]]>
</programlisting>
</example>