}
} catch (SqlException e) {
// ΠΠΉ!
}
ΠΡΠ΅Ρ ΠΎΠ²Π½ΠΎΡΡΡ PHP
ΠΠΎΡ ΡΠ° ΠΆΠ΅ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ°, Π½ΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ Π ΠΠ , ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΌ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ .
...<?php
$db = mysql_connect("localhost","root","$$sshhh...!");
mysql_select_db("Shipping",$db);
$id = $HTTP_GET_VARS["id"];
$qry = "SELECT ccnum FROM cust WHERE id = %$id%";
$result = mysql_query($qry,$db);
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();
}
catch (SQLException e)
{
// ΠΠΉ!
return false;
}
catch (ClassNotFoundException e)
{
// ΠΠ΅ Π½Π°ΠΉΠ΄Π΅Π½ ΠΊΠ»Π°ΡΡ
return false;
}
finally
{
try
{
con.close();
} catch(SQLException e) {}
}
return true;
}
ΠΡΠ΅Ρ ΠΎΠ²Π½ΠΎΡΡΡ SQL
ΠΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΊΠΎΠ΄ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π½Π΅ ΡΠ°ΠΊ ΡΠ°ΡΡΠΎ, Π½ΠΎ Π°Π²ΡΠΎΡ ΠΏΠ°ΡΡ ΡΠ°Π· Π½Π°ΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΡΡ Π½Π° Π½Π΅Π³ΠΎ Π² ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ . ΠΠΎΠΊΠ°Π·Π°Π½Π½Π°Ρ Π½ΠΈΠΆΠ΅ Ρ ΡΠ°Π½ΠΈΠΌΠ°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΅Π΅!...CREATE PROCEDURE dbo.doQuery(@query nchar(128))
AS
exec(@query)
RETURN
Π Π²ΠΎΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ ΠΊΡΠ΄Π° ΡΠΈΡΠ΅ ΠΈ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠΏΠ°ΡΠ΅Π½:
...CREATE PROCEDURE dbo.doQuery(@id nchar(128))
AS
DECLARE @query nchar(256)
SELECT @query = \'select ccnum from cust where id = \'\'\' + @id + \'\'\'\'
EXEC @query
RETURN
ΠΠ΄Π΅ΡΡ ΠΎΠΏΠ°ΡΠ½Π°Ρ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΡ ΡΡΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ. Π’ΠΎ Π΅ΡΡΡ Π²Ρ ΠΏΠΎβΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΡΠΎΠ²Π΅ΡΡΠ°Π΅ΡΠ΅ ΠΏΠΎΡΡΡΠ΄Π½ΡΠΉ Π³ΡΠ΅Ρ , Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π²ΡΠ·Π²Π°Π½Π° ΠΈΠ· ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ·ΡΠΊΠ΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.
Π‘ΡΠΎΠΈΡ ΠΏΠΎΠΈΡΠΊΠ°ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ, ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ Π² SQL, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Β«+Β» ΠΈ Β«||Β», Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ CONCAT() ΠΈ CONCATENATE().
ΠΠΎ Π²ΡΠ΅Ρ ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Id. ΠΠ°ΠΆΠ½ΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠ΅Π±Π΅, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½ΡΡΡ, Π΅ΡΡΡ ΡΠ΅Π°Π»ΡΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΈΠ»ΠΈ Π½Π΅Ρ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π΄Π°ΡΡ Π»ΡΠ±ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Id, ΡΡΠ°ΡΡΠ²ΡΡΡΠ΅ΠΉ Π² Π·Π°ΠΏΡΠΎΡΠ΅, ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π²ΠΈΠ΄ΠΎΠΌ ΡΡΡΠΎΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠ°. ΠΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΊΠ°ΡΠ°ΡΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ.
ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π°ΡΠ°ΠΊΠ° ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π²ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ SQLβΠ·Π°ΠΏΡΠΎΡ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π»ΠΈΡΠ½ΠΈΠ΅ ΡΠ°ΡΡΠΈ ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ² Β«Π½Π΅Π½ΡΠΆΠ½ΡΠ΅Β». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Id, ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π΄Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊΡ 1 or 2>1 β β , ΡΠΎΠ³Π΄Π° Π·Π°ΠΏΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠΉ Π²ΠΈΠ΄:
...SELECT ccnum FROM cust WHERE id=1 or 2>1 β β
Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ 2>1 ΠΈΡΡΠΈΠ½Π½ΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΡΠΎΠΊ ΡΠ°Π±Π»ΠΈΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π·Π°ΠΏΡΠΎΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ cust, Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π½ΠΎΠΌΠ΅ΡΠ° Π²ΡΠ΅Ρ ΠΊΡΠ΅Π΄ΠΈΡΠ½ΡΡ ΠΊΠ°ΡΡΠΎΡΠ΅ΠΊ. ΠΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π°ΡΠ°ΠΊΠΎΠΉ Β«1 = 1Β», Π½ΠΎ ΡΠ΅ΡΠ΅Π²ΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΡΠ°ΡΡΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠΈΡΠΊ ΡΠ°ΠΊΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ Π²ΡΠΎΡΠΆΠ΅Π½ΠΈΠΉ (IDS), ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Β«2>1Β», ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠΎΠ»Ρ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ, Π½ΠΎ Β«ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ΄ Π»ΡΡΠΎΠΌ ΡΠ°Π΄Π°ΡΠ°Β».
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ β β ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΈΠ· ΠΏΠΎΠ»Ρ Π·ΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π·Π°ΠΏΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³Π»Π° Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°. Π ΠΎΠ΄Π½ΠΈΡ Π±Π°Π·Π°Ρ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ β, Π² Π΄ΡΡΠ³ΠΈΡ β #. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΡΠΎ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π²Π°ΡΠ° Π±Π°Π·Π°.
Π Π°Π·Π»ΠΈΡΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π°ΡΠ°ΠΊ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΡΡ ΠΈΡ Π·Π΄Π΅ΡΡ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΡΡΡΡΒ».
Π ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π³ΡΠ΅Ρ ΠΈ
ΠΠΎ Π²ΡΠ΅Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π³ΡΠ΅Ρ ΠΈ:
β‘ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Ρ Π²ΡΡΠΎΠΊΠΈΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ Π΄ΠΎΡΡΡΠΏΠ°;
β‘ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠΎΠ»Ρ Π² ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ;
β‘ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊΡ ΠΈΠ·Π»ΠΈΡΠ½Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΡ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ. ΠΠ΅Π·Π΄Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Ρ ΠΎΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎ Π΄ΠΎΡΡΡΠΏ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠΌΠΎΠΆΠ΅Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, Π° ΡΠΎ ΠΈ Π²ΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΠΎΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ Π²ΡΡΠΎΠΊΠΈΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ Π΄ΠΎΡΡΡΠΏΠ° β ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΎΡΠΈΠ±ΠΊΠ° ΠΈ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ.
Β«ΠΠ°ΡΠΈΠ²Π°Π½ΠΈΠ΅Β» ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ Π² ΠΊΠΎΠ΄ β ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΡΠΎΡΠ½Π°Ρ ΠΈΠ΄Π΅Ρ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠΌ. Π³ΡΠ΅Ρ 11 ΠΈ 12 ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠ΅ ΡΠ°ΠΌ Β«Π»Π΅ΠΊΠ°ΡΡΡΠ²Π°Β».
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡΡ Π΅ΠΉ, ΠΎΠ½ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΡΡΡΠΊΡΡΡΠ΅ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ, Π±ΡΡΡ ΠΌΠΎΠΆΠ΅Ρ, Π΄Π°ΠΆΠ΅ ΡΠ·Π½Π°ΡΡ ΠΈΠΌΠ΅Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π±Π°Π·Ρ. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΡΠΌ. Π² Π³ΡΠ΅Ρ Π΅ 6.
ΠΠ΄Π΅ ΠΈΡΠΊΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ
ΠΡΠ±ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ±Π»Π°Π΄Π°ΡΡΠ΅Π΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠΌΠΈ Π½ΠΈΠΆΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ, ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½ΠΎ ΡΠΈΡΠΊΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ SQL:
β‘ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ;
β‘ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ;
β‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²Π²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠ° ΠΊ Π±Π°Π·Π΅;
β‘ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΡ ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ SQLβΠ·Π°ΠΏΡΠΎΡΠ° Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ SQL exec (ΠΈΠ»ΠΈ Π΅ΠΉ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ).
ΠΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π° ΡΡΠ°ΠΏΠ΅ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π°
ΠΠΎ Π²ΡΠ΅ΠΌΡ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ SQL ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΈΡΠ΅ ΠΌΠ΅ΡΡΠ°, Π³Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . Π―ΡΠ½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ, Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΠΈΠΌΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΡΡΠ° Π½Π°ΠΏΠ°ΡΡΡ Π½Π΅ ΡΠ³ΡΠΎΠΆΠ°Π΅Ρ. ΠΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ:
ΠΡΡΡΠ½ΠΈΠ², ΡΡΠΎ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ [1] , Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π³Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΈ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ²Π΅ΡΡΡΡ Π΄Π°Π½Π½ΡΠΌ, ΡΡΠ°ΡΡΠ²ΡΡΡΠΈΠΌ Π² Π·Π°ΠΏΡΠΎΡΠ΅. Π‘Π°ΠΌΠΎΠ΅ ΠΏΡΠΎΡΡΠΎΠ΅ β Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ ΠΌΠ΅ΡΡΠ°, Π³Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ SQL, ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ , Π²Π·ΡΡΡΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ· ΡΡΡΠΎΠΊΠΈ WebβΠ·Π°ΠΏΡΠΎΡΠ°, ΠΈΠ· WebβΡΠΎΡΠΌΡ ΠΈΠ»ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° SOAP. ΠΠΎΠΎΠ±ΡΠ΅, Π»ΡΠ±ΡΡ ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΡ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π°Π½Π½ΡΡ !
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ°Π΄ΠΎ ΠΏΡΠΈΠ·Π½Π°ΡΡ, ΡΡΠΎ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ Π΄ΠΎΠ±ΡΠΎΡΠΎΠ²Π΅ΡΡΠ½ΠΎΠΌΡ Π°Π½Π°Π»ΠΈΠ·Ρ ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ SQL Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. ΠΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Ρ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠΎΠ΄Ρ, ΠΈΠ»ΠΈ Π²Ρ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΏΡΡΠ° ΡΡΠ΅Π½ΠΈΡ ΡΡΠΆΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. Π’ΠΎΠ³Π΄Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ Π²ΡΠ΅ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π³Π΄Π΅ ΡΠΎΡΠΌΠΈΡΡΡΡΡΡ SQLβΠ·Π°ΠΏΡΠΎΡΡ. ΠΠ°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡβΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΠ»Π°ΡΡ Π² ΡΡΠΈ ΡΠΎΡΠΊΠΈ ΡΠ°ΡΡΠΈΡΠ½ΠΎ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΡΠΈΡΡΠ΅ΡΡΡ WebβΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΡΠΎΠΈΡ Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ ΡΠΎΡΠΌΡ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π²ΡΡΠ°Π²ΠΈΡΡ Π² Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° ΡΠ·ΡΠΊΠ° SQL. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° Perl ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ.
...#!/usr/bin/perl
use strict;
use HTTP::Request::Common qw(POST GET);
use HTTP::Headers;
use LWP::UserAgent;
srand time;
# ΠΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π½Π°ΠΉΠ΄Π΅Π½Π° ΠΎΡΠΈΠ±ΠΊΠ°
my $pause = 1;
# Π’Π΅ΡΡΠΈΡΡΠ΅ΠΌΡΠΉ URL
my $url = \'http://mywebserver.xyzzy123.com/cgi-bin/post.cgi\
# ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ HTTP-ΠΎΡΠ²Π΅ΡΠ°
my $max_response = 1000;
# ΠΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ Π³ΠΎΡΠΎΠ΄Π°
my @cities = qw(Auckland Seattle London Portland Manchester Redmond
Brisbane Ndola);while (1) {
my $city = randomSQL($cities[rand @cities]);
my $zip = randomSQL(10000 + int(rand 89999));print Β«ΠΡΠΎΠ±ΡΡ [$city] ΠΈ [zip]\nΒ»;
my $ua = LWP::UserAgent->new();
my $req = POST $url,
[ City => $city,
ZipCode => $zip,
];
# ΠΠΎΡΠ»Π°ΡΡ Π·Π°ΠΏΡΠΎΡ, ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠ²Π΅Ρ ΠΈ ΠΏΠΎΠΈΡΠΊΠ°ΡΡ Π² Π½Π΅ΠΌ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ
my $res = $ua->request($req);
$_ = $res->as_string;
die "Π₯ΠΎΡΡ Π½Π΅Π΄ΠΎΡΡΠΈΠΆΠΈΠΌ\n" if /bad hostname/ig;
if ($res->status_line != 200
|| /error/ig
|| length($_) > $max_response) {
print "\nΠΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ SQL\n";
print;
getc if $pause;
}
}# ΠΡΠ±ΡΠ°ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ SQL, Π² 50% ΡΠ»ΡΡΠ°Π΅Π² ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ
# Π΅Π³ΠΎ Π² Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ΅Π³ΠΈΡΡΡ
sub randomSQL() {
$_ = shift;return $_ if ($rand > .75);
my @sqlchars = qw(1=1 2>1 Β«fred=Β»fre" + "d" or and select union drop update insert into dbo < > = ( ) \' .. β #);
my $sql = $sqlchars[rand @sqlchars]; $sql = uc($sql) id rand > .5;
return $_ . \' \' . $sql if rand > .9;
return $sql . \' \' . $_ if rand > .9;
return $sql;
}ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ SQL ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΠ°ΠΊ ΠΌΡ ΡΠΆΠ΅ ΡΠΊΠ°Π·Π°Π»ΠΈ, Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π»ΡΡΡΠ΅ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π°. ΠΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ PerlβΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ, Π·Π°ΡΠ°Π½Π΅Π΅ Π²ΡΡΡΠ½ΠΈΡΡ, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ, Π° Π·Π°ΡΠ΅ΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ, Π½Π° ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΠΎΡΠ²Π΅Ρ, ΠΎΡΠ»ΠΈΡΠ°ΡΡΠΈΠΉΡΡ ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ, ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΠ°.
ΠΠΌΠ΅ΡΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΡΠ΅ΡΡΠΈΡ ΡΠΈΡΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ AppScan ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Sanctum (ΡΠ΅ΠΏΠ΅ΡΡ Watchfire) (www.watchfire.com), Weblnspect ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ SPI Dynamics (www.spidynamics.com) ΠΈ ScanDo ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Kavado (www.kavado.com).
ΠΠ»Ρ ΠΎΡΠ΅Π½ΠΊΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌΠΈ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ, Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠΈΠΌΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ SQL, ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΡΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΡΠΌΠ΅Π΅Ρ Π½Π°ΠΉΡΠΈ.