Оценить:
 Рейтинг: 0

19 смертных грехов, угрожающих безопасности программ

Год написания книги
2011
<< 1 ... 12 13 14 15 16 17 18 19 20 ... 22 >>
На страницу:
16 из 22
Настройки чтения
Размер шрифта
Высота строк
Поля

if ($result) {

echo mysql_result($result,0,"ccnum");

} else {

echo "No result! " . mysql_error();

}

?>

Греховность Perl/CGI

И снова тот же дефект, но на этот раз в программе на достопочтенном Perl:

#!/usr/bin/perl

use DBI;

use CGI;

print CGI::header();

$cgi = new CGI;

$id = $cgi->param('id');

$dbh = DBI->connect('DBI:mysql:Shipping:localhost',

'root',

'$3cre+')

or print "Ошибка connect : $DBI::errstr";

$sql = "SELECT ccnum FROM cust WHERE id = " . $id;

$sth = $dbh->prepare($sql)

or print "Ошибка prepare : $DBI::errstr";

$sth->execute()

or print "Ошибка execute : $DBI::errstr";

# Вывести данные

while (@row = $sth->fetchrow_array ) {

print "@row<br>";

}

$dbh->disconnect;

print "</body></html>";

exit;

Греховность Java

Еще один распространенный язык, Java. Подвержен внедрению SQL по той же схеме.

import java.*;

import java.sql.*;

...

public static boolean doQuery(String Id) {

Connection con = null;

try

{

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

con = DriverManager.getConnection("jdbc:microsoft:sqlserver: " +

"//localhost:1433", "sa", "$3cre+");

Statement st = con.createStatement();

ResultSet rs = st.executeQuery("SELECT ccnum FROM cust WHERE id=" +

Id);

while (rx.next()) {

// Полюбоваться на результаты запроса

}

rs.close();

st.close();
<< 1 ... 12 13 14 15 16 17 18 19 20 ... 22 >>
На страницу:
16 из 22