PHP рдореЗрдВ рд╕рдмрд╕реЗ рдЖрдо SQL рдЗрдВрдЬреЗрдХреНрд╢рди рдкреИрдЯрд░реНрди рдмреЗрдХрд╛рд░ рдЪрд░рд┐рддреНрд░ рднрд╛рдЧрдиреЗ рд╣реИ

рдореЗрд░реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рдкреНрд░рдХреГрддрд┐ рд╕реЗ, рдореБрдЭреЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕реБрд░рдХреНрд╖рд╛ рдСрдбрд┐рдЯ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗред
рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рдХреЛрдб рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ ...

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдПрдХ рд╕рд░рд▓ (рдмрд╣реБрдд рд╣реА рд╕рд░рд▓) рд╕рддреНрдп рдФрд░ рдЖрдВрдХрдбрд╝реЗ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЬреЛ рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рддреАрди рд╡рд░реНрд╖реЛрдВ рдХреЗ PHP рдХреЛрдб рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рджреМрд░рд╛рди рдХрдИ рдмрд╛рд░ рдХрд╛рдЯреЗ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдП рд╣реИрдВред

рдпрд╣ рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ SQL рдЗрдВрдЬреЗрдХреНрд╢рди рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕рднреА рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рднреЗрджреНрдпрддрд╛ рдХрд╛ рд╕рдмрд╕реЗ рдЖрдо рд╣реИред рдРрд╕реЗ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдФрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдРрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдУрдЖрд░рдПрдо рдФрд░ рдЕрдиреНрдпред рд▓реЗрдХрд┐рди рдЖрдБрдХрдбрд╝реЗ рд╣рдардкреВрд░реНрд╡рдХ рд╣рдореЗрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдкреВрд░реНрдг рдкреНрд░рдмрд▓рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕рд░рд▓ рд░реВрдк рд╕реЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рд╢реНрди рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдРрд╕реЗ рдорд╛рдорд▓реЗ рднреА рд╣реИрдВ рдЬрд╣рд╛рдВ ORM рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рди рдХреЗрд╡рд▓ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкреИрд░рд╛рдореАрдЯрд░, рдмрд▓реНрдХрд┐ рдСрдкрд░реЗрдЯрд░ рд╕реНрддрд░ рдкрд░ рдХреНрд╡реЗрд░реА рддрд░реНрдХ рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рдмреЗрдХрд╛рд░ рдЪрд░рд┐рддреНрд░ рдмрдЪ

PHP рд╡реЗрдм рдЗрдВрдЬреЗрдХреНрд╢рди рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ 83% рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛

рдЪрд░рд┐рддреНрд░ рд╕реЗ рдмрдЪрдиреЗ рдЬреИрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
mysql_escape_string
mysql_real_escape_string
addslashes
рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдХреЗ рдмрд┐рдирд╛ред рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдХреНрд╕рд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рдкрджрдВрдбреЛрдВ (рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ * _id) рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реЛрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг

$sql = "SELECT user FROM userslist WHERE userid=".mysql_real_escape_string($_GET['uid']);

рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рдХреЛрдб рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рджрд┐рдЦрдиреЗ рдореЗрдВред рдореЗрд░реЗ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ PHP рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд▓рдЧрд╛рддрд╛рд░ SQL рдЗрдВрдЬреЗрдХреНрд╢рди рдкреИрдЯрд░реНрди рдпрд╣рд╛рдБ crept рд╣реИред рдЗрд╕ рднреЗрджреНрдпрддрд╛ рдкрд░ рдПрдХ рд╣рдорд▓реЗ рдХреЛ рдЕрдВрдЬрд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рд╣рдорд▓реЗ рдХреЗ рд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдкрд╛рддреНрд░реЛрдВ рдХреЗ \ 'x00 \ r \ n \ X1a рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
/index.php?uid=-777 UNION SELECT password FROM userlist

рдХреЛрдб рдЦреЛрдЬ

рднрд╛рд╖рд╛ рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рджреНрд╡рд╛рд░рд╛ рдЬрдЯрд┐рд▓ред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП, рдЖрдк egrep рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
egrep -Rin "(select|update|insert|delete|replace).*(from|set|into).*(mysql_escape_string|mysql_real_escape_string|addslashes)" . | grep -v "[\"']['\"]"

рдЦреЛрдЬ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рддрд░реНрдХ рдЙрди рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ ('', '', '', '') рдХрд╛ рдХреЛрдИ рдХреНрд░рдо рдирд╣реАрдВ рд╣реИред рд╡рд┐рдзрд┐, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, 100% рд╕реЗ рджреВрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рдВрднрд╡ рд╣реИред
рд╕реВрдЪрдирд╛ рдЙрддреНрдкрд╛рджрди рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрдВрд╕реЛрд▓ рдореЗрдВ рд░рдВрдЧ рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
egrep -Rin "(select|update|insert|delete|replace).*(from|set|into).*(mysql_escape_string|mysql_real_escape_string|addslashes)" . | grep -v "[\"']['\"]" | egrep --color "(mysql_escape_string|mysql_real_escape_string|addslashes)"

рдЗрд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рднреЗрджреНрдпрддрд╛ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯрд╛рдЗрдк рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред
рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдФрд░ рдкрд░рд┐рд░рдХреНрд╖рдг рд╕реЗ рдЕрдзрд┐рдХ рддреЗрдЬрд╝ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреИрдЪ рдЗрд╕ рддрд░рд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
$sql = "SELECT user FROM userslist WHERE userid=".intval($_GET['uid']);


рдпрд╣ рд▓рдШреБ рдирд┐рдмрдВрдз рдХрд╛ рд╕рдорд╛рдкрди рдХрд░рддрд╛ рд╣реИред рдореИрдВ рд╕рднреА рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдЖрдЧреНрд░рд╣ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдбрд┐рдЬрд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдореЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред рдмреЗрд╣рддрд░ рдЕрднреА рддрдХ, рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рджреА рдЧрдИ рдЦреЛрдЬ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВред

Source: https://habr.com/ru/post/In142599/


All Articles