?????? ??????????? ???-???????????????? ?? PHP

????????? ?????????? ?????????? ???-?????????? ????????, ??????????, ??? ???????????????? ? ???????? ??????????. ?? ???????? ?????? ???????? ? ????? ?????? ???????? ??? ????????????. ? ??????????? ??? ???????? ?????????? ???-?????????????. ?? ?? ? ???? ?????? ??????? ?? ????????? ?????? ??????-?? ?????. ? ???? ????? ???????????? ?????????? ???-?????????? ????? ????? ????? ????????????? ????? ?????? ??????????????? ???????????. ??????, ???????? ????????? ??????? ????????? ???-???????????????? ????? ?????? ???? ????????? ?????????? ?? ????? ?? ????????. ? ??? ???? ? ?????? ? ???? ??????.

?????? ??????? ???-?????????? ???????? ????? ????????? ?????????? ????? ??????. ??????? ????????, ????? ?????? ?????? ????? ???????? ?? ??????? ?? ????????? ? ???? ??????????:

  • GET ? POST-??????. ??????? ??, ?????? ???????????? ????????????? ? ???? GET ? POST-??????????. ??? ????? ???????????????? ???????? ??????? ??????, ??????????????, ????? ??????? ???? ??????????? ?????????? ?? ????;
  • ????. ?? ?? ???????????????? ??????, ?????? ????? ?? ????????;
  • ?????? ?? ??. ????????????? ???????? ?????? ?? ???? ??????;
  • ??????? ???????. ??????? ???????, ??????? ?????? ????????? ? ???????? ??????. ????????, ????????? RSS-????? ???????? ? ???? ????????.

?? ???????? ?????, ???????? ?????? ?? ???????? ???????????? ????????. ??????? ?????? ????????? ?????????? ??? ?????? ? ???????????? ? ?? ?????????? ???????????.

???? ??????

?????????? ??????, ????? ????????? ????? ?????? ???????????? ? ????????? ? ????? ??????. ???????????, ??? ?? ????? ??????? HTML-????? ??????????? ? ??????????? user ? password ? ????? ????????????:

$user = $_POST['user'];
$password = $_POST['password'];
 
$sql = "SELECT Count(*) FROM users WHERE user = '$user' AND password = '$password' LIMIT 1";
 
//--?????????? ??????? ? ?????? ??????????

??? ????????? ??????, ?? ????????????? ?????????? ?????-???? ????????? ??????? ??????. ???, ????????????? ????? ? ???????? ????? ???????? ????????? ???????????:

admin'/*

? ?????? ??????. ? ?????????? ?????????? ?????????? SQL-??????:

SELECT COUNT(*) FROM users WHERE USER = 'admin'/*' AND password = '' LIMIT 1

(?????????????????? /* ? SQL ????????? ??????? ???????????, ????? ????? ???? ?? ???????????) ??????? ?????????? ??? ??? ????????????????? ????????? ??? ???????? ??????. ?????? ?????????? ?????????? SQL-????????. ?????? ??? ?????????? ??? ??? ??????????? ?????????? ?? ???????????. ? ??? ?????????? ?????? ', ??????? ?????????????? ????????? ????????? ???????? ? SQL-???????, ??? ???? ??????????? ???????? ??????????? ???????. ????? ???????? ????? ?????????? ???????????? ??????? ? ????????? ??????, ??????? ???????????? ? SQL-????????. ??? ????????????? ? ?????? ????? ?????? ??????????? ???????? ???????? ?????? \, ??????? ????????? ??????????? ??????? ???????. ??? ????????????? ????????? ??????, ???????????? ??? ?????? ? MySQL ??????????? ??????? mysql_real_escape_string. ???????????????? ?????????? ???????? ????????? ???????:

$user = mysql_real_escape_string( $_POST['user'] );
$password = mysql_real_escape_string( $_POST['password'] );
 
$sql = "SELECT Count(*) FROM users WHERE user = '$user' AND password = '$password' LIMIT 1";
 
//--?????????? ??????? ? ?????? ??????????

? ???? ?????? ????????????? ?? ?????? ??????????? ??????? ??????????????? ??????? ???????? ????????? SQL-???????, ?.?. ??????? ????????? ????????? ?????????????? ????? ????????? ?????????.

????? ???? ?? ????? ?????????? ? ??????? ? ????????? ???????. ???????????, ??? ?? ????? ?????????? URL ???? product.php?id=[?????]. ? ??????? product.php ?????? ? ???????? ?? ???? ?????? ?????????? ????????? ???????:

$id = $_GET['id'];
 
$sql = "SELECT * FROM products WHERE id = $id LIMIT 1";
 
//--?????????? ??????? ? ?????? ??????????

? ????? ??????????. id ?????? ??????? ?? ??????????????, ??????? ?????? ????????? ?????????????? ????? ???????? ????? SQL-????, ??????? ?????????? ?? ?????????? MySQL-???????. ????????????? ? ?????? ?????? ?? ???????, ??? ??? ???????? ? SQL-??????? ?? ???????? ????????? (??????, ???????? ???????? ????? ????? ????? ? ??????? ??? ????????? ??????????). ??????? ????????? ?????????? ???????: ????? ?????? ???? ??????????? ?????? ? SQL-???????. id ?? ???? ??????? ????????? ?????? ????? ??????, ? ?????? ??? ????????????? ?????????????? ??? ????? ????????? ?????-?? ????????? ??????. ??????? ????????????? ???????? ???????? ???????? id ? ????????? ????. ??? ????? ? PHP ?????????? ??????? intval:

$id = intval( $_GET['id'] );
 
$sql = "SELECT * FROM products WHERE id = $id LIMIT 1";
 
//--?????????? ??????? ? ?????? ??????????

?????? ?????? ??????? intval (???? ?????):



???????

????????? ?????? ????? ??????? ?????? ???????????? ??? ???????????? ???????? ????????. ???????? ????????????? ???????? ? ???? ?????? ????????????? HTML-???. ?????????? ??????. ?? ????? ??????? ?????? ?????? search.php ?? ????????? ?????:

//--???? ??????? ?????. query, ?????????? ???, ????? ?????? ??????
$search = isset($_GET['query']) ? $_GET['query'] : '';
...
echo '<input type="text" name="query" value="' . $search . '" />';
...

?? ???? ??????? ????? ? ????????? ????? ??? ????? ????????? ?????. ??? ?????? (GET-???????) ????????? ????? ???????????? ???????? ? ????. ??? ???????? ????????? ???? ? ???? ???????? ??????? ?????. ?? ???? ??????:

" /><em>hacked!</em>

?? ????? ??????????? ???????? ? ???? ????????:

<input type="text" name="query" value="" /><em>hacked!</em>" />

??????????????? ??? ?????? HTML-??? input ? ?? ???????? ????? HTML-???. ????? ?????????? ????????? ???????????? ????????? XSS-????? ?? ????. ????????????? ??? ??????, ?????????? ??????????? HTML-??? ???, ??? ?? ?? ?????. ??? ????? ? ?????????? ???????????? ??????? htmlspecialchars, ??????? ??????????????? ??????????? HTML-??????? ? ?????????? ??????????????????. ? ?????????? ????????? HTML-??? ?? ????????????????, ? ???????????? ??? ????. ?????????????:

//--???? ??????? ?????. query, ?????????? ???, ????? ?????? ??????
$search = isset($_GET['query']) ? $_GET['query'] : '';
...
echo '<input type="text" name="query" value="' . htmlspecialchars($search) . '" />';
...

?????? ? ?????? ????? ?????????? ???? ?????????????? ???? ????? ????????? ???:

<input type="text" name="query" value="&quot; /&gt;&lt;em&gt;hacked!&lt;/em&gt;" />

? ????????? ??????? ????? ???????????? PHP-???????? strip_tags, ??????? ????????? ??????? HTML-???? ?? ??????.

???????? ???????

?????? ??????? ?????? ???????????? ??? ??????? ? ???????? ???????. ????????, ?? ????? ?????????? URL index.php?page=board, index.php?page=glory, index.php?page=contacts, ? ??????? index.php ?????????????? ??? ????????? ???????:

$page = $_GET['page'];
 
echo file_get_contents($page . '.txt');

????? ??? ??????. ????????????? ????? ? ????????? ???????? ???? ? ???????????? ????? ? ??????? ??? ??????????. ????????, ????????????????? ?????:

/index.php?page=../config.php%00

??????, ? ?? ?????????? ???????? ??????, ??????? ?????????? ??????????? ????? ?? ???????? ???:

$page = $_GET['page'];
 
switch ($page)
{
    case 'board' : echo file_get_contents('board.txt'); break;
    case 'glory' : echo file_get_contents('glory.txt'); break;
    case 'contacts' : echo file_get_contents('contacts.txt'); break;
    default : ... ;
}

?? ???? ??? ?? ?????????? ???????????? ??????? ???????? ??? ??? ??????-?? ?????, ?? ??????????? ??? ?????????. ??? ????? ????? ??????????????? ???????? basename, ???????, ??? ??????? ? ?????? ???? ? ????? ? ??????????, ??????? ??, ??????? ?????? ???:



????? ????????????

?????? ?????????? ???????, ????? ??????? ?? ??????????? ????, ?????????? ? ????? ????????????, ??????? ???????? ?????????? ?????. ? ????? ????? ??????? ?????????? ?????? PHP-??????. ? ??????? ?????? ????? ??? ?????????? ?? ? ????, ? ?????????????? ????? ??????? ??????? ??????? ?????? ??????????, ???? ???? ??????? ??????????. ????????? ????? ?????? ????? ?????????? display_errors ? ???????????????? ????? PHP. ??? ????? ????? ??????? ? ????? .htaccess:

php_flag display_errors off

??? ???? ? ????? PHP-???????:

ini_set('display_errors', 0);

??? ???? ?????????? ???????? ??????????? ?????? ?????????? log_errors, ????????? error_reporting ????????? ???????? E_ALL ? ????????? ????????????? error.log. ? ??????? ?????? ?????? ????? ???? ???? ?????? ?????????? ??????, ? ??????. ??????? ?????????????? ????? ??? ?????????? ?????.

Комментарии

Оставить комментарий »

 
qwe
20 сентября 2011, 2:21
#1
 

register_globals ????? ???? ????? ???? ?? ????????? )

Joker-jar
20 сентября 2011, 7:14
#2
 

? ????????? ??????? PHP ??? ?? ????????? ?????????. ??????, ?????, ?????-?? ???? ???????? )

Anhair
5 августа 2012, 3:44
#3
 

??? ????????????? ?? ?????? ?????-?????. ?? ??? ????? ?? ???, ??????? ???????? ?????????? ??????, ?.?. ?????? ?? ??? ????? ??????? ? ????????. ? ???????? ? ????? ????? ????????, ??? ?? ????????? ?? ??????? ??????? ???. ? ?????? ???????????? ????? ?????? ??? ?????? ???????? ??? ?????? ?? ???????????? ??? ?????.

vitalik-758153
27 июля 2013, 8:34
#4
 

??

Charlesinife
21 сентября 2017, 12:20
#5
 

<a href=http://medrolpack.us.org/>medrol</a> <a href=http://hydrochlorothiazide12.us.org/>Hydrochlorothiazide Mastercard</a> <a href=http://erythromycin500mg.us.org/>erythromycin online</a>

Оставить комментарий

Ваше имя
 
Ваш e-mail
 
Комментарий