際際滷

際際滷Share a Scribd company logo
丼弌 丕弌丐丐  
             丶丐乖  弌丐乖弌 丕丼
                   丐 个丐




                    仗仂
  弌弌丐  乂丐  icrosoft  
               亊
                              仆舒 亠仄舒
  舒亳舒 仆舒 Web 仗亳仍仂亢亠仆亳  Cross Site Scripting, SQL Injection




亰亞仂于亳仍:                                  仂于亠亳仍:
亳从仂仍舒亶 亳从仂仍仂于                            亟仂. 亟- 弌亠舒仆 舒亢亠于
仗亠亳舒仍仆仂:
亳仍仂亢仆舒 亳仆仂仄舒亳从舒  
VII 从, I 亞., 个  5494



                              舒仆舒 2013
Web 仗亳仍仂亢亠仆亳
     丐舒亟亳亳仂仆仆亳亠 仗亳仍仂亢亠仆亳 亠 亳仆舒仍亳舒 亳仍亳 亠 舒亳舒 仂 亟亳从 亳仍亳
亟亞舒 仄亠亟亳舒. 丐亠 舒亰亳舒 仆舒 亟舒亟亠仆舒 亠亟舒, 从仂仂 于 仂弍亳 仍舒亶 亠 仂亳亞磦舒 仂
仂仗亠舒亳仂仆仆舒舒 亳亠仄舒.
     亳 亠弍 仗亳仍仂亢亠仆亳舒, 亰舒 亟舒 舒亳舒亠 仗亳仍仂亢亠仆亳亠 亳亰仗仂仍亰于舒亠 弍舒亰.
 仂弍亳 仍舒亶 仗亳仍仂亢亠仆亳亠仂 亠 仂于舒 仍亠亟 仆舒仗亳于舒仆亠 仆舒 仆亠亞仂于亳 亠弍 舒亟亠 于
弍舒亰舒.
     仆亠 亠弍 亠仆仂仍仂亞亳亳亠 仗仂亰于仂仍磦舒 亟舒 亠 亰亟舒于舒 仆亠 舒仄仂 亳仆亠舒从亳于仆亳 亳
仆从亳仂仆舒仍仆亳 舒亶仂于亠, 仆仂 亳 仆舒仗仍仆仂 仆从亳仂仆舒仍仆亳 亠弍 仗亳仍仂亢亠仆亳, 
亳仆亠亠亶, 仆从亳仂仆舒仍仆仂 亳 弍亰仂亟亠亶于亳亠. 丐亠仄亳仆舒 亠弍 仗亳仍仂亢亠仆亳亠 仄仂亢亠 亟舒
亠 亟亠亳仆亳舒 仗仂 仍亠亟仆亳 仆舒亳仆: 弌仂亠, 从仂亶仂 舒弍仂亳 于 弍舒亰舒.
      Web-弍舒亰亳舒仆亳亠 仗亳仍仂亢亠仆亳 舒 仆仂 于亰舒仆亳  仆亠仆亠. 亳 
亠仍亳 仗仂亠 仆舒 于于亠亢亟舒仆亠, 仂弍舒弍仂于舒仆亠 亳 亰舒仗舒亰于舒仆亠 仆舒 亳仆仂仄舒亳舒 亠
亳亰于于舒 于 仍仂弍舒仍仆舒舒 仄亠亢舒. 仆仂于仆仂 仗亠亟亳仄于仂 仆舒 仂亰亳 亳仗 仗亳仍仂亢亠仆亳 亠
仍亠仆亳 亟仂仗 亟仂  仂 从仂仂 亳 亟舒 亠 仂从舒 仆舒 于亠舒. 仆仂仄舒亳舒, 从仂仂 亠
于于亠亢亟舒 亳 仗仂仄亠仆, 仂弍亳从仆仂于亠仆仂 亠 亰舒仗舒亰于舒 仆舒 仂亟舒仍亠亠仆 从仂仄仗ム-于, 亟仂
从仂亶仂 磡于舒 亟舒 亳仄舒仄亠 亟仂仗 于亠从亳 仗, 从仂亞舒仂 亠 仆亠仂弍仂亟亳仄仂 亟舒 
舒从舒仍亳亰亳舒仄亠. 弌舒仄亳亠 亠弍 舒亶仂于亠 仄仂亞舒 亟仂 亳亰于亠仆舒 亠仗亠仆 亟舒 亠 仄舒 亰舒
Web-弍舒亰亳舒仆亳 仗亳仍仂亢亠仆亳 仂仂弍亠仆仂 从仂亞舒仂 舒于舒 于仗仂 亰舒 亟亳仆舒仄亳仆亳 舒亶仂于亠
 仍仂亢仆舒 从舒 亳 舒亰亳亠仆舒 仆从亳仂仆舒仍仆仂. 仂仂礌仆舒舒 舒从亳于仆仂 仆舒
舒从于 亳仗 仗亳仍仂亢亠仆亳 亠 亟亞仂 仂仆仂于仆仂 仗亠亟亳仄于仂, 亶 从舒仂 仍亞亳亠, 从仂亳仂 亠
仗亠亟仍舒亞舒, 亠 弍亟舒 亟仂仗仆亳 24 舒舒 于 亟亠仆仂仆仂亳亠仂, 7 亟仆亳 于 亠亟仄亳舒舒 (仂于舒 亠
亳亟亠舒仍仆亳 仍舒亶). 亳仂从仂仂 仆亳于仂 仆舒 亳亞仆仂 仆舒 于亳亠, 舒亰仆仂仂弍舒亰亳亠仂
仂 仄仂亟仍亳 亰舒 仗舒于仍亠仆亳亠 仆舒 亟舒仆仆亳亠, 从舒从仂 亳 亟仂仗仆亳亠 亠仆亳 仗舒于 Web-
弍舒亰亳舒仆亳亠 仗亳仍仂亢亠仆亳 亢亠仍舒仆仂 亠亟于仂 亰舒 舒弍仂舒 从舒从仂 亰舒 仄舒仍从亳 亳 亠亟亠仆
弍亳亰仆亠, 舒从舒 亳 亰舒 亞仂仍亠仄亳亠 从仂仗仂舒亳亳.
      仆仂于亠仆 仆亠亟仂舒从 仆舒 仂亰亳 亳仗 仗亳仍仂亢亠仆亳 亠 仗磻舒舒 亰舒于亳亳仄仂 仆舒
亳亠仄舒舒 亰舒 仗舒于仍亠仆亳亠 仂 亠亟亳舒 舒从仂亳. 丐舒从亳于舒 舒 仆舒仗亳仄亠 仆亠仆亠-
于亰从舒舒, 仆舒仂于舒于舒仆亠仂 仆舒 于舒, 从亟亠仂 亠 仆舒仄亳舒 仗亳仍仂亢亠仆亳亠仂 亳仍亳 从亟亠仂
亠 亰舒仗亳于舒 亳仆仂仄舒亳舒, 于亰仄仂亢仆仂舒 亰舒 仗仂磦舒 仆舒 仆亠仗仂亰于仂仍亠仆亳 亟亠亶于亳 仂
舒仆舒 仆舒 仆磻仂亳 仗仂亠弍亳亠仍亳 仗礆仂 亳亠仄舒舒. 舒亰弍亳舒 亠 于亳从亳 亠亰亳
仗仂亠仆亳舒仍仆亳 仗仂弍仍亠仄亳 舒 舒亰亠亳仄亳 仗仂 亠亟亳仆 亳仍亳 亟亞 仆舒亳仆, 仆仂 亠 舒从, 亠 亠
弍亳舒 仄仂亞仍亳 亟舒 亟仂于亠亟舒 亟仂 仆舒舒于舒仆亠 弍亠亰仗仂弍仍亠仄仆舒舒 舒弍仂舒 仆舒 Web-
仗亳仍仂亢亠仆亳亠仂 亳 亠于亠仆舒仍仆仂 亟仂 亰舒亞弍舒 仆舒 亳仆仂仄舒亳.
      a亳aa 仆a e亟仆o ye弍 仗p亳仍o亢e仆亳e e e亟亳仆 o 仆a亶-于a亢仆亳e ea仗亳, 亰ae亟仆o c
仗poe从亳pa仆eo 亳 o仗亳仄亳亰a亳a 仄y. Aa从亳e 亟a仍e 仆e ce c于e亢亟a ca仄o 亟o
MySQL Injection 亳 XSS. 仄a 亳 oe 仄仆o亞o 亟py亞亳, 从ao a仍亳于亳 HTTP 亰a磦从亳,
brute-force aa从亳, 仗y弍仍亳仆o 亳亰仍a亞a仆e 仆a 从o亟, o从pa亟于a仆e (亳从c亳pa仆e) 仆a cec亳 亳
亟py亞亳.
     MySQL Injection 亳 XSS, o弍ae, ca 仆a亶-eco cpea仆亳e aa从亳, 仗opa亟亳
仄仆o亞oo ca亶o于e y磶于亳仄亳 从仄 x. To于a ca aa从亳, 从o亳o ce oc仆o于a于a 仆a
y磶于亳仄oc亳 仗p亳 亳亰仗paa仆eo 亳 仗o仍ya于a仆eo 仆a 亳仆op仄a亳 仄e亢亟y
仗ope弍亳e仍 亳 cp于pa. pa于亳仍oo, 从oeo p磡于a 亟a ce c仗a亰于a, e e 于c亳从o, 从oeo
于仍亳亰a 亳 亳亰仍亳亰a o 弍a亰aa 亟a仆仆亳, p磡于a 亟a ce 亳仍p亳pa! He p磡于a 亟a ce 亳仄a
亟o于ep亳e 亳 仆a 仆亳从舒从于亳 亟a仆仆亳, 仗pe亟ca于e仆亳 o 仗ope弍亳e仍!

                     Cross Site Script (XSS) 舒舒从亳
      Cross Site Scripting (XSS) 亠 舒舒从舒, 从仂仂 亳亰仗仂仍亰于舒 磶于亳仄仂 仆舒
仗亳仍仂亢亠仆亳亠仂 亳 于仄从于舒 仆亠亢亠仍舒仆 从仂亟, 从仂亶仂 亠 亳亰仗仍仆磦舒 于 弍舒亰舒 仆舒
从舒亶仆亳 仗仂亠弍亳亠仍. 舒亶-仂弍仂 从舒亰舒仆仂 舒舒从舒舒 亠仍亳 亟舒 仆舒仄亠亳 仄仂 于
仗仂亞舒仄舒舒, 于 从仂亠仂 亠 仂仗亠舒于舒 仂亶仆仂舒 仆舒 亟舒亟亠仆舒 仗仂仄亠仆仍亳于舒 亳 仆亠 亠
仗仂于亠磦舒 从仂亠从仆仂 仆亠亶仆仂仂 亟亢舒仆亳亠. 弍亳从仆仂于亠仆仂 于 亟亢舒仆亳亠仂 仆舒
仗仂仄亠仆仍亳于舒舒 亠 亰舒仗亳于舒 HTML, XHTML, JavaScript, ActiveX, VBScript, Flash, 亳
亟 于亳亟仂于亠 亳亰仗仍仆亳仄 从仂亟. 亰仄仂亢仆仂亳亠 亰舒 亠仍 仆舒 舒舒从舒舒 仄仂亢亠 亟舒 舒 仄仆仂亞仂 
仗亳亟仂弍亳于舒仆亠 仆舒 亟仂仗 亟仂 亰舒亳亠仆舒 亰仂仆舒 仆舒 舒亶舒 (亠亰 仗仂亳亞舒仆亠 仆舒 session
hijacking), 仗仂亟于亠亢亟舒仆亠 仆舒 仗仂亠弍亳亠仍 亟舒 于于亠亟亠 亳仆仂仄舒亳 从仄 亠亳
亳亰仂仆亳从 (physhing), 亳仆舒仍亳舒仆亠 仆舒 仆亠亢亠仍舒仆亳 仗仂亞舒仄亳 仆舒 从仂仄仗ム舒 仆舒
仗仂亠弍亳亠仍 (virus, worm, trojan, ), 亳 亟.
     亳亟仂于亠 XSS 舒舒从亳:
     1. 亳亠从仆亳: 舒从于舒亳 仗亠亟仂舒于 于亰从舒 亳仍亳 亟亞 于亳亟 仄舒从亳舒仆 从仂亟
从仄 从仍亳亠仆舒. 仂亞舒仂 从仍亳亠仆舒 仗仂仍亠亟于舒 舒从舒于舒 于亰从舒 仂亶 仗仂仗舒亟舒 仆舒
仂亳亞亳仆舒仍仆亳 亠弍舒亶 仆舒 亟舒亟亠仆舒舒 仍亞舒, 仆仂 于亠亠  仄仂亟亳亳亳舒仆 从仂亟. 丐亠亰亳
舒舒从亳 舒 于亰仄仂亢仆亳 仆舒亶-于亠亠 亠亰 亳亰仗舒亠仆亳 仗亳仄舒 仗仂 e-mail.
      2. 弌舒亳仆亳: 亠亢亠仍舒仆亳 从仂亟 亠 于仄从于舒 于 弍舒亰舒舒 亟舒仆仆亳 仍亠亟 从仂亠仂 亠
亳亰舒于从舒 磶于亳仄舒舒 舒仆亳舒 亟舒 弍亟亠 仂于仂亠仆舒. 丐仂于舒 舒 仆舒亶-亠亳亠 舒舒从亳 仗亳
.仆舒. 仂亳舒仍仆亳 仄亠亢亳  仂仄亳, 弍仍仂亞仂于亠, 亟亳从亳仂仆仆亳 亞仗亳, 亳 .仆.
     3. DOM: 丐仂于舒 舒 XSS 舒舒从亳 仂 .仆舒. 仍仂从舒仍仆仂 仆亳于仂. 弍亳从仆仂于亠仆仂 亠
亳亰仗仂仍亰于舒 磶于亳仄仂 于 从亳仗 仆舒 仗仂亟从舒, 亠亰 从仂亶仂 舒仄亳 仂亠 亟舒
仗亠亟亳亰于亳从舒 亟亳亠从仆舒 XSS 舒舒从舒 从仄 亢亠于舒舒.
     舒从 亟舒 弍亟亠 亳亰弍亠亞仆舒 XSS.
     丐磡于舒 亟舒 弍亟舒 仗舒亰于舒仆亳 仆磻仂亶 仗舒于亳仍舒 亰舒 亟舒 亠 仗仂亳亞仆亠 仗仂-亟仂弍舒
亰舒亳舒 仂 XSS 舒舒从亳.
     亳从仂亞舒 仆亠 磡于舒 亟舒 亠 于于舒仄亠 仆舒 仗仂亠弍亳亠仍亳亠 仆舒 亟舒亟亠仆 舒亶.
     亳从亳 于仂亟亳 亟舒仆仆亳 磡于舒 亟舒 弍亟舒 于舒仍亳亟亳舒仆亳, 仆仂仄舒仍亳亰亳舒仆亳 亳
亳仍亳舒仆亳.
      舒亟仍亢亳亠仍仆仂 磡于舒 亟舒 弍亟舒 仗亠于仍亠仆亳 仂仗亠亟亠仍亠仆亳 亰仆舒亳, 于
仂于亠仆亳亠 亳仄 HTML entry 亳 亟舒 弍亟舒 亳亰仗舒舒仆亳 从仄 弍舒亰舒 舒仄仂 于 仂亰亳
于亳亟. 舒亟仍亢亳亠仍仆仂 磡于舒 亟舒 亠 从仂仆于亠亳舒:
     & -> &
     < -> &lt;
     > -> &gt;
 -> &quot;
       -> &#x27;
      / -> &#x2F;
      仂亞舒仂 从仄 弍舒亰舒 弍亟亠 亳亰仗舒亠仆 &lt; 亠 亞仂 于亳亰舒仍亳亰亳舒 从舒仂 < 仂亠
<script 亠 弍亟亠 亳亰仗舒亠仆仂 从舒仂 &lt;script , 亳 弍舒亰亰舒 仆礆舒 亟舒 亞仂 亳亰仗仍仆亳 从舒仂
javascript.
      亠 仍舒亞舒亶亠 仍亳仆亳 亟舒仆仆亳 亳 从仂仄亠仆舒亳 仆舒 亠亟仆舒 舒仆亳舒
     XSS 仆亠 亠 舒仄仂 亰舒 从舒亟亠仆亠 仆舒 亠亳, XSS 仄仂亢亠 亟舒 于亰亠仄亠 磿舒舒 HTML
舒仆亳舒, 亳仍亳 舒 仂 仆亠, 亳 亟舒  亳亰仗舒亳 仆舒 仆磻仂亶 于. 丐仂亠 舒从仂 仆舒
舒仆亳舒舒 亰舒 仗仂亳仍 仆舒 仗仂亠弍亳亠仍 亳仄舒亠 仆磻舒从于仂 仗仂仍亠, 亳亶仂 亟舒仆仆亳 亳亟于舒
仂 于仆仆亳 仗仂亠弍亳亠仍亳, 仂 舒从仂 仄亳仆亠 XSS 舒舒从舒, 仂亰亳 从仂亟, 亠 仄仂亢亠 亟舒 于亰亠仄亠
磿舒舒 舒仆亳舒  于亳从亳 亟舒仆仆亳 仆舒 仗仂亠弍亳亠仍.
      HTTPOnly 仍舒亞 仆舒 弍亳从于亳从亳亠
     亠从亳 亠亰亳从 仗仂亰于仂仍磦舒 仂亰亳 仍舒亞 亟舒 弍亟亠 于亟亳亞仆舒, 亳 仗仂于亠亠仂 弍舒亰亳 亞仂
仗舒亰于舒. 丐仂于舒 从仂亠仂 仗舒于亳 亠, 亠 仆亠 仗仂亰于仂仍磦舒 仆舒 JS 亟舒 亠亠 亠亰亳 弍亳从于亳从亳. 丐仂亠
舒从仂 仄亳仆亠 XSS, 仂 从仂亟舒 仆亠 仄仂亢亠 亟舒 于亳亟亳 弍亳从于亳从亳亠  仂亰亳 仍舒亞, 仂亠 仆礆舒
从舒亢弍舒 仆舒 亠亳.
      舒 IP 仆亠 仄仂亢亠 亟舒 亠 舒亰亳舒
      仂仍礆舒 舒 仂 仂舒舒 舒  亟亳仆舒仄亳仆亳 IP 舒亟亠亳, 亟亞亳 仄亳仆舒于舒
(亟仂弍仂于仂仍仆仂 亳仍亳 仆亠) 仗亠亰 仗仂从亳 于亳, 亳 亠 于亰仄仂亢仆仂 2 亰舒磦从亳 仂 亠亟亳仆 亳
亳 仗仂亠弍亳亠仍, 亟舒 亟仂亶亟舒 仂 2 舒亰仍亳仆亳 舒亟亠舒, 亟仂亳 亳 亰舒磦从亳亠 亟舒 舒 于
舒仄从亳亠 仆舒 亠从仆亟舒. 磻仂亶 亟仂舒于亳亳 仗舒于 仆亠舒舒 仂亠 仗仂-亰仍亠, 从舒仂 AOL ,
仗仂仆亠亢亠 仗亳  于磻舒 亰舒磦从舒 亠  舒亰仍亳仆仂 IP, 亳 仆舒 于亳从仂 仂亞仂亠 亠 亳 仂 舒亰仍亳亠仆
亞舒亟.
    亳仄亠仆舒 XSS 舒舒从舒 从仄 仂仄舒, 从仂仂 仆亠 亠 亰舒亳亠仆舒 仗仂 仆亳从舒从于 仆舒亳仆.
个仂仄舒舒 亠 仗亳仄亠仆舒 亳 仗亠亟舒于仍磦舒 舒 仂 仂仄舒 亰舒 亠亞亳舒亳.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>仂仆舒从仆舒 仂仄舒</title>
</head>
<body>


<form action="contact_insert12.php" method="post" name="forma12">
      <table width=400 border=1>
<tr>
                       <td align="left">
                       <p>仄亠:<br/>
                               <input type="text" size="20" name="fname" /></p>
                       <p>个舒仄亳仍亳:<br/>
                               <input type="text" size="20" name="lname"/></p>
                       <p>舒亠仍亠仆仂 仄仂:<br/>
                               <input type="text" size="20" name="place1"/></p>
                       <input type="submit" name="submit" value="亰仗舒亳"/>
                       </td>
               </tr>
        </table>
</form>
</body>
</html>
弌从亳仗 从仄 仂仄舒舒, 从仂亶仂 亠 亳亰于亠亢亟舒 于于亠亟亠仆亳亠 亟舒仆仆亳
<?php
if(isset ($_POST['submit'])) {
        $fname = $_POST['fname'];
        $lname = $_POST['lname'];
        $place1 = $_POST['place1'];
    print '仄亠: ' . $fname . '<br /> 个舒仄亳仍亳: ' . $lname . '<br /> 舒亟: ' . $place1;
}
?>


     仂亟 仆舒 仆舒舒舒 舒舒从舒, 从仂亶仂 仄仂亢亠 亟舒 亠 仗仂舒于亳 于 从仂亠仂 亳 亟舒 亠 仂
亠从仂于亳亠 仗仂仍亠舒:


        <div style="text-align: center;"><p style="font-family: Verdana; font-style:
        normal; font-variant: normal; font-weight: bold; font-size: 36px; line-height:
      normal; font-size-adjust: none; font-stretch: normal; color: rgb(255, 0,
0);">This
      page has been Hacked!</p><img
src=/slideshow/5494-n-nikolovzashtita-16130463/16130463/"http:/ha.ckers.org/images/stallowned.jpg"
     border="0"><p style="font-family: Arial; font-style: italic; font-variant:
normal;
font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust:
none;
          font-stretch: normal; color: rgb(221, 221, 221);">XSS Defacement</p></div>




          亠亰仍舒, 从仂亶仂 亠 仗仂仍亳仄 亠 仍亠亟仆亳:


      从仂 仆舒仗舒于亳仄 亠亟仆舒 仆从亳  亳仄亠 security, 从仂仂 亠 亳仄舒 亟于舒 仗舒舒仄亠舒.
于亳 亠 弍亟亠 亳仆亞舒  亟舒仆仆亳亠, 从仂亶仂 亳从舒仄亠 亟舒 仗仂于亠亳仄, 舒 于仂亳 仆礆舒
亟舒 亠 亰舒亟仍亢亳亠仍亠仆 亳 亠 弍亟亠 亰舒 仄舒从亳仄舒仍仆舒 仂亶仆仂 仆舒 仗舒舒仄亠舒.
<?php
function security($data, $max = null)
{
    if(is_numeric($data)) {
      if($max == null) {
           return (int)$data;
      } else {
           if($data <= $max) {
               return (int)$data;
           } else {
               return "于亠亟亠仆舒舒 仂亶仆仂 亠 仗亠从舒仍亠仆仂 亞仂仍礆舒!";
           }
      }
    } else {
if($max == null) {
            $data = htmlspecialchars(addslashes($data));
            return $data;
        } else {
            if(strlen($data) <= $max) {
                $data = htmlspecialchars(addslashes($data));
                return $data;
            } else {
                return "丐仂于舒 仗仂仍亠 仆亠 仄仂亢亠 亟舒 亟亢舒 仗仂于亠亠 仂 $max 亳仄于仂仍舒";
            }
        }
    }
}
if(isset ($_POST['submit'])) {
            $fname = security ($_POST['fname'], 10);
            $lname = security ($_POST['lname'], 15);
            $place1 = security ($_POST['place1'], 15);
    print '仄亠: ' . $fname . '<br /> 个舒仄亳仍亳: ' . $lname . '<br /> 舒亟: ' . $place1;
}
?>




            亠亰仍舒, 从仂亶仂 亠 仗仂仍亳仄 亠 仍亠亟仆亳
舒亳舒 仂 SQL Injection
     SQLi 亠 亳亰仗仂仍亰于舒 亰舒 亰仍仂仆舒仄亠亠仆仂 亳亰仗仍仆亠仆亳亠 仆舒 SQL 亰舒磦从舒 从仄 弍舒亰舒舒
亟舒仆仆亳.
     丼亠亰 舒亰亳 亠仆亳从舒 仄仂亢亠 亟舒 弍亟舒 亠从仗仍仂舒亳舒仆亳 磶于亳仄亳 从仂亟仂于亠.
     SQL 亳仆亢e从亳pa仆eo e 仆a亶-eco cpea仆aa y磶于亳仄oc 于 PHP
仗p亳仍o亢e仆亳a. To ce oc仆o于a于a 仆a 亞pe从a 仆a PHP 仗po亞pa仄亳ca, 仗p亳 从oo 仆e ce
亳仍p亳pa 亳仆op仄a亳a, 仗o亟a亟e仆a 从仄 弍a亰aa 亟a仆仆亳. 丼eco 仆e ce 亳仍p亳pa 亳
于p仆a亳 pe亰y仍a, 仗p亳 从oeo ce pa亰从p亳于a e仆仆亳 亟a仆仆亳 亳 仗亳a.
     亳仄亠 亰舒 o仗ac仆oc o MySQL Injection.
     A从o c从p亳仗 亰a 于xo亟 于 c亳ce仄aa 亳仄a c亳仆a从c亳c o po亟a:
      $sql = "SELECT * FROM users WHERE username = '$user' AND password =
'$pass'". A从o 从仄 a亰亳 亰a磦从a, 仆apy亳e仍 仗o亟a亟e e亟亳仆亳仆a 从舒于亳从舒 亰a
仗ope弍亳e仍c从o 亳仄e 亳 仗po亳亰于o仍仆a 仗apo仍a, 亰a磦从aa e 于p仆e c仍e亟仆aa 亞pe从a:
     You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near 'WHERE username = ' ' '
AND password = 'sometext
     C 仄仆o亞o 仄a仍从o pa弍oa (仗o亟a于a仆e 仆a 从a于亳从a), 仆apy亳e仍 于ee 亰仆ae
亳仄e仆aa 仆a 亟于e 从o仍o仆亳 o a弍仍亳aa 亳 o于a, e 亟a仆仆亳e 亳 于 亟于ee 仗oco从亳 仆e ca
亳仍p亳pa仆亳 仗pa于亳仍仆o. Hapy亳e仍 亰仆ae 亳 c亳仆a从c亳ca 仆a 从仍ay亰aa WHERE, o
从亟eo 仄o亢e 亟a c亳 c亞仍o弍亳 亰a磦从亳 亰a 于c亳从o, 从oeo 仄y p磡于a, 仆舒仗亳仄亠:
     myuser ' or 'foo' = 'foo' --
      A从o o于a ce 于于e亟e 从ao 仗ope弍亳e仍c从o 亳仄e, 仆apy亳e仍 e 于仍e亰e
yc仗e仆o 于 c亳ce仄aa, 弍e亰 亟a 亳仄a 仆亳o 仗ope弍亳e仍c从o 亳仄e, 仆亳o 仗apo仍a. A a从o
仆apy亳e仍 亰仆ae 仗ope弍亳e仍c从o 亳仄e c 仆y亢仆亳e 仄y 仗pa于a, o亶 仄o亢e 亟a 于仍e亰e 亳 c
仆e亞o, 弍e亰 亟a 仄y ce 仆a仍a亞a 亟a 亰仆ae 仗apo仍aa, 仗poco 于于e亢亟a 亰a 仗ope弍亳e仍:
     cloxy' --
      SQL 亳仆亢e从亳pa仆eo 仄仂亢亠 亟舒 弍亟亠 亳亰弍亠亞仆舒仂. c亳从亳 仗po仄e仆仍亳于亳, 从o亳o
ce 于从ap于a 于 e亟仆a MySQL 亰a磦从a, p磡于a 亟a 弍亟a 亳仍p亳pa仆亳 c y仆从亳a
mysql_real_escape_string(). B 亞op仆亳 仗p亳仄ep, o于a ca 仗po仄e仆仍亳于亳e $user 亳
$pass. C亳仆a从c亳c e 从舒从仂 c仍e亟于a: $user = mysql_real_escape_string($user) 亳 a从a
亰a $pass.
     舒亶-仍亠仆亳 仆舒亳仆 亟舒 亠 仗亠亟仗舒亰亳亠 仂 SQL 亳仆亢亠从亳亳 亠 亟舒 亳仍亳舒亠
于亳从亳 于仂亟亳 亟舒仆仆亳. 舒仗亳仄亠 , 亠亰 仆从亳亳亠:
     htmlspecialchars(); addslashes(); 亳 trim();
个仆从亳亳
     htmlspecialchars() - 仗亠仂弍舒亰于舒 仗亠亳舒仍仆亳 亰仆舒亳 于 html 亠亟亳仆亳亳
     addslashes() - 亠从舒仆亳舒 仗亠亳舒仍仆亳亠 亰仆舒亳 仆舒 亟舒亟亠仆 亳仆亞
     trim() - 仗亠仄舒于舒 亰仆舒亳 于 仆舒舒仍仂仂 亳 从舒 仆舒 亟舒亟亠仆 亳仆亞
       htmlentities() - 仗亠仂弍舒亰于舒 于亳从亳 仗仂亟仂亟亳 亰仆舒亳 于 HTML 亠亟亳仆亳亳 亳 亠
.. 仂亟仆舒  htmlspecialchars();
     仂仗仍仆亳亠仍仆舒 亰舒亳舒 仄仂亢亠 亟舒 弍亟亠 仆舒仗亳于舒仆亠仂 仆舒 从亳仗, 从仂亶仂
仗仂于亠磦舒 亰舒 亞亠仆亳 仗舒仂仍亳 - 仗亳 3 亞亠仆亳 仂仗亳舒 亰舒 于仂亟  亞亠仆舒 仗舒仂仍舒 于
弍舒亰舒舒 亟舒仆仆亳, 舒从舒仆舒 亠 亰舒从仍ム于舒 亰舒 15 仄亳仆亳.


     亳亳仆亳 亰舒 磶于亳仄仂亳 从仄 SQLi 于 亳亠仄舒舒 仄仂亞舒 亟舒 于亰仆亳从仆舒 于 亠亰亳
仍舒亶:
     - 亠亰 亳仍亳舒仆亠 仆舒 于仂亟亳亠 亟舒仆仆亳
     - 丕磶于亳仄仂 于 于舒 仆舒 弍舒亰舒舒 亟舒仆仆亳


     亠仂亟亳 亰舒 亰舒亳舒 仂 SQL 亳仆亢亠从亳:
     - 个亳仍亳舒仆亠 仆舒 亟舒仆仆亳亠
     - 亰从仍ム于舒仆亠 仆舒 亟仂从仍舒亟亳亠 亰舒 亞亠从亳.
     - 弌亰亟舒于舒仆亠 仆舒 仗仂亠弍亳亠仍,  仗仂-仄舒仍从仂 仗亳于亳仍亠亞亳亳.
     - 舒从亳仄舒仍仆舒 仂亶仆仂
亰仗仂仍亰于舒仆舒 仍亳亠舒舒


C. Snider, T. Mayer, M. Southwell, Pro PHP Security - Second edition
J. Grossman, R. Hansen, P. Petkov, A. Rager, XSS Attacks
R. Alvarez, D. Hartley, J. Hamler, H. Meer, SQL Injection

http://web-tourist.net
https://www.owasp.org
http://gatakka.eu
http://www.cphpvb.net

More Related Content

5494 n nikolov_zashtita

  • 1. 丼弌 丕弌丐丐 丶丐乖 弌丐乖弌 丕丼 丐 个丐 仗仂 弌弌丐 乂丐 icrosoft 亊 仆舒 亠仄舒 舒亳舒 仆舒 Web 仗亳仍仂亢亠仆亳 Cross Site Scripting, SQL Injection 亰亞仂于亳仍: 仂于亠亳仍: 亳从仂仍舒亶 亳从仂仍仂于 亟仂. 亟- 弌亠舒仆 舒亢亠于 仗亠亳舒仍仆仂: 亳仍仂亢仆舒 亳仆仂仄舒亳从舒 VII 从, I 亞., 个 5494 舒仆舒 2013
  • 2. Web 仗亳仍仂亢亠仆亳 丐舒亟亳亳仂仆仆亳亠 仗亳仍仂亢亠仆亳 亠 亳仆舒仍亳舒 亳仍亳 亠 舒亳舒 仂 亟亳从 亳仍亳 亟亞舒 仄亠亟亳舒. 丐亠 舒亰亳舒 仆舒 亟舒亟亠仆舒 亠亟舒, 从仂仂 于 仂弍亳 仍舒亶 亠 仂亳亞磦舒 仂 仂仗亠舒亳仂仆仆舒舒 亳亠仄舒. 亳 亠弍 仗亳仍仂亢亠仆亳舒, 亰舒 亟舒 舒亳舒亠 仗亳仍仂亢亠仆亳亠 亳亰仗仂仍亰于舒亠 弍舒亰. 仂弍亳 仍舒亶 仗亳仍仂亢亠仆亳亠仂 亠 仂于舒 仍亠亟 仆舒仗亳于舒仆亠 仆舒 仆亠亞仂于亳 亠弍 舒亟亠 于 弍舒亰舒. 仆亠 亠弍 亠仆仂仍仂亞亳亳亠 仗仂亰于仂仍磦舒 亟舒 亠 亰亟舒于舒 仆亠 舒仄仂 亳仆亠舒从亳于仆亳 亳 仆从亳仂仆舒仍仆亳 舒亶仂于亠, 仆仂 亳 仆舒仗仍仆仂 仆从亳仂仆舒仍仆亳 亠弍 仗亳仍仂亢亠仆亳, 亳仆亠亠亶, 仆从亳仂仆舒仍仆仂 亳 弍亰仂亟亠亶于亳亠. 丐亠仄亳仆舒 亠弍 仗亳仍仂亢亠仆亳亠 仄仂亢亠 亟舒 亠 亟亠亳仆亳舒 仗仂 仍亠亟仆亳 仆舒亳仆: 弌仂亠, 从仂亶仂 舒弍仂亳 于 弍舒亰舒. Web-弍舒亰亳舒仆亳亠 仗亳仍仂亢亠仆亳 舒 仆仂 于亰舒仆亳 仆亠仆亠. 亳 亠仍亳 仗仂亠 仆舒 于于亠亢亟舒仆亠, 仂弍舒弍仂于舒仆亠 亳 亰舒仗舒亰于舒仆亠 仆舒 亳仆仂仄舒亳舒 亠 亳亰于于舒 于 仍仂弍舒仍仆舒舒 仄亠亢舒. 仆仂于仆仂 仗亠亟亳仄于仂 仆舒 仂亰亳 亳仗 仗亳仍仂亢亠仆亳 亠 仍亠仆亳 亟仂仗 亟仂 仂 从仂仂 亳 亟舒 亠 仂从舒 仆舒 于亠舒. 仆仂仄舒亳舒, 从仂仂 亠 于于亠亢亟舒 亳 仗仂仄亠仆, 仂弍亳从仆仂于亠仆仂 亠 亰舒仗舒亰于舒 仆舒 仂亟舒仍亠亠仆 从仂仄仗ム-于, 亟仂 从仂亶仂 磡于舒 亟舒 亳仄舒仄亠 亟仂仗 于亠从亳 仗, 从仂亞舒仂 亠 仆亠仂弍仂亟亳仄仂 亟舒 舒从舒仍亳亰亳舒仄亠. 弌舒仄亳亠 亠弍 舒亶仂于亠 仄仂亞舒 亟仂 亳亰于亠仆舒 亠仗亠仆 亟舒 亠 仄舒 亰舒 Web-弍舒亰亳舒仆亳 仗亳仍仂亢亠仆亳 仂仂弍亠仆仂 从仂亞舒仂 舒于舒 于仗仂 亰舒 亟亳仆舒仄亳仆亳 舒亶仂于亠 仍仂亢仆舒 从舒 亳 舒亰亳亠仆舒 仆从亳仂仆舒仍仆仂. 仂仂礌仆舒舒 舒从亳于仆仂 仆舒 舒从于 亳仗 仗亳仍仂亢亠仆亳 亠 亟亞仂 仂仆仂于仆仂 仗亠亟亳仄于仂, 亶 从舒仂 仍亞亳亠, 从仂亳仂 亠 仗亠亟仍舒亞舒, 亠 弍亟舒 亟仂仗仆亳 24 舒舒 于 亟亠仆仂仆仂亳亠仂, 7 亟仆亳 于 亠亟仄亳舒舒 (仂于舒 亠 亳亟亠舒仍仆亳 仍舒亶). 亳仂从仂仂 仆亳于仂 仆舒 亳亞仆仂 仆舒 于亳亠, 舒亰仆仂仂弍舒亰亳亠仂 仂 仄仂亟仍亳 亰舒 仗舒于仍亠仆亳亠 仆舒 亟舒仆仆亳亠, 从舒从仂 亳 亟仂仗仆亳亠 亠仆亳 仗舒于 Web- 弍舒亰亳舒仆亳亠 仗亳仍仂亢亠仆亳 亢亠仍舒仆仂 亠亟于仂 亰舒 舒弍仂舒 从舒从仂 亰舒 仄舒仍从亳 亳 亠亟亠仆 弍亳亰仆亠, 舒从舒 亳 亰舒 亞仂仍亠仄亳亠 从仂仗仂舒亳亳. 仆仂于亠仆 仆亠亟仂舒从 仆舒 仂亰亳 亳仗 仗亳仍仂亢亠仆亳 亠 仗磻舒舒 亰舒于亳亳仄仂 仆舒 亳亠仄舒舒 亰舒 仗舒于仍亠仆亳亠 仂 亠亟亳舒 舒从仂亳. 丐舒从亳于舒 舒 仆舒仗亳仄亠 仆亠仆亠- 于亰从舒舒, 仆舒仂于舒于舒仆亠仂 仆舒 于舒, 从亟亠仂 亠 仆舒仄亳舒 仗亳仍仂亢亠仆亳亠仂 亳仍亳 从亟亠仂 亠 亰舒仗亳于舒 亳仆仂仄舒亳舒, 于亰仄仂亢仆仂舒 亰舒 仗仂磦舒 仆舒 仆亠仗仂亰于仂仍亠仆亳 亟亠亶于亳 仂 舒仆舒 仆舒 仆磻仂亳 仗仂亠弍亳亠仍亳 仗礆仂 亳亠仄舒舒. 舒亰弍亳舒 亠 于亳从亳 亠亰亳 仗仂亠仆亳舒仍仆亳 仗仂弍仍亠仄亳 舒 舒亰亠亳仄亳 仗仂 亠亟亳仆 亳仍亳 亟亞 仆舒亳仆, 仆仂 亠 舒从, 亠 亠 弍亳舒 仄仂亞仍亳 亟舒 亟仂于亠亟舒 亟仂 仆舒舒于舒仆亠 弍亠亰仗仂弍仍亠仄仆舒舒 舒弍仂舒 仆舒 Web- 仗亳仍仂亢亠仆亳亠仂 亳 亠于亠仆舒仍仆仂 亟仂 亰舒亞弍舒 仆舒 亳仆仂仄舒亳. a亳aa 仆a e亟仆o ye弍 仗p亳仍o亢e仆亳e e e亟亳仆 o 仆a亶-于a亢仆亳e ea仗亳, 亰ae亟仆o c 仗poe从亳pa仆eo 亳 o仗亳仄亳亰a亳a 仄y. Aa从亳e 亟a仍e 仆e ce c于e亢亟a ca仄o 亟o MySQL Injection 亳 XSS. 仄a 亳 oe 仄仆o亞o 亟py亞亳, 从ao a仍亳于亳 HTTP 亰a磦从亳, brute-force aa从亳, 仗y弍仍亳仆o 亳亰仍a亞a仆e 仆a 从o亟, o从pa亟于a仆e (亳从c亳pa仆e) 仆a cec亳 亳 亟py亞亳. MySQL Injection 亳 XSS, o弍ae, ca 仆a亶-eco cpea仆亳e aa从亳, 仗opa亟亳 仄仆o亞oo ca亶o于e y磶于亳仄亳 从仄 x. To于a ca aa从亳, 从o亳o ce oc仆o于a于a 仆a
  • 3. y磶于亳仄oc亳 仗p亳 亳亰仗paa仆eo 亳 仗o仍ya于a仆eo 仆a 亳仆op仄a亳 仄e亢亟y 仗ope弍亳e仍 亳 cp于pa. pa于亳仍oo, 从oeo p磡于a 亟a ce c仗a亰于a, e e 于c亳从o, 从oeo 于仍亳亰a 亳 亳亰仍亳亰a o 弍a亰aa 亟a仆仆亳, p磡于a 亟a ce 亳仍p亳pa! He p磡于a 亟a ce 亳仄a 亟o于ep亳e 亳 仆a 仆亳从舒从于亳 亟a仆仆亳, 仗pe亟ca于e仆亳 o 仗ope弍亳e仍! Cross Site Script (XSS) 舒舒从亳 Cross Site Scripting (XSS) 亠 舒舒从舒, 从仂仂 亳亰仗仂仍亰于舒 磶于亳仄仂 仆舒 仗亳仍仂亢亠仆亳亠仂 亳 于仄从于舒 仆亠亢亠仍舒仆 从仂亟, 从仂亶仂 亠 亳亰仗仍仆磦舒 于 弍舒亰舒 仆舒 从舒亶仆亳 仗仂亠弍亳亠仍. 舒亶-仂弍仂 从舒亰舒仆仂 舒舒从舒舒 亠仍亳 亟舒 仆舒仄亠亳 仄仂 于 仗仂亞舒仄舒舒, 于 从仂亠仂 亠 仂仗亠舒于舒 仂亶仆仂舒 仆舒 亟舒亟亠仆舒 仗仂仄亠仆仍亳于舒 亳 仆亠 亠 仗仂于亠磦舒 从仂亠从仆仂 仆亠亶仆仂仂 亟亢舒仆亳亠. 弍亳从仆仂于亠仆仂 于 亟亢舒仆亳亠仂 仆舒 仗仂仄亠仆仍亳于舒舒 亠 亰舒仗亳于舒 HTML, XHTML, JavaScript, ActiveX, VBScript, Flash, 亳 亟 于亳亟仂于亠 亳亰仗仍仆亳仄 从仂亟. 亰仄仂亢仆仂亳亠 亰舒 亠仍 仆舒 舒舒从舒舒 仄仂亢亠 亟舒 舒 仄仆仂亞仂 仗亳亟仂弍亳于舒仆亠 仆舒 亟仂仗 亟仂 亰舒亳亠仆舒 亰仂仆舒 仆舒 舒亶舒 (亠亰 仗仂亳亞舒仆亠 仆舒 session hijacking), 仗仂亟于亠亢亟舒仆亠 仆舒 仗仂亠弍亳亠仍 亟舒 于于亠亟亠 亳仆仂仄舒亳 从仄 亠亳 亳亰仂仆亳从 (physhing), 亳仆舒仍亳舒仆亠 仆舒 仆亠亢亠仍舒仆亳 仗仂亞舒仄亳 仆舒 从仂仄仗ム舒 仆舒 仗仂亠弍亳亠仍 (virus, worm, trojan, ), 亳 亟. 亳亟仂于亠 XSS 舒舒从亳: 1. 亳亠从仆亳: 舒从于舒亳 仗亠亟仂舒于 于亰从舒 亳仍亳 亟亞 于亳亟 仄舒从亳舒仆 从仂亟 从仄 从仍亳亠仆舒. 仂亞舒仂 从仍亳亠仆舒 仗仂仍亠亟于舒 舒从舒于舒 于亰从舒 仂亶 仗仂仗舒亟舒 仆舒 仂亳亞亳仆舒仍仆亳 亠弍舒亶 仆舒 亟舒亟亠仆舒舒 仍亞舒, 仆仂 于亠亠 仄仂亟亳亳亳舒仆 从仂亟. 丐亠亰亳 舒舒从亳 舒 于亰仄仂亢仆亳 仆舒亶-于亠亠 亠亰 亳亰仗舒亠仆亳 仗亳仄舒 仗仂 e-mail. 2. 弌舒亳仆亳: 亠亢亠仍舒仆亳 从仂亟 亠 于仄从于舒 于 弍舒亰舒舒 亟舒仆仆亳 仍亠亟 从仂亠仂 亠 亳亰舒于从舒 磶于亳仄舒舒 舒仆亳舒 亟舒 弍亟亠 仂于仂亠仆舒. 丐仂于舒 舒 仆舒亶-亠亳亠 舒舒从亳 仗亳 .仆舒. 仂亳舒仍仆亳 仄亠亢亳 仂仄亳, 弍仍仂亞仂于亠, 亟亳从亳仂仆仆亳 亞仗亳, 亳 .仆. 3. DOM: 丐仂于舒 舒 XSS 舒舒从亳 仂 .仆舒. 仍仂从舒仍仆仂 仆亳于仂. 弍亳从仆仂于亠仆仂 亠 亳亰仗仂仍亰于舒 磶于亳仄仂 于 从亳仗 仆舒 仗仂亟从舒, 亠亰 从仂亶仂 舒仄亳 仂亠 亟舒 仗亠亟亳亰于亳从舒 亟亳亠从仆舒 XSS 舒舒从舒 从仄 亢亠于舒舒. 舒从 亟舒 弍亟亠 亳亰弍亠亞仆舒 XSS. 丐磡于舒 亟舒 弍亟舒 仗舒亰于舒仆亳 仆磻仂亶 仗舒于亳仍舒 亰舒 亟舒 亠 仗仂亳亞仆亠 仗仂-亟仂弍舒 亰舒亳舒 仂 XSS 舒舒从亳. 亳从仂亞舒 仆亠 磡于舒 亟舒 亠 于于舒仄亠 仆舒 仗仂亠弍亳亠仍亳亠 仆舒 亟舒亟亠仆 舒亶. 亳从亳 于仂亟亳 亟舒仆仆亳 磡于舒 亟舒 弍亟舒 于舒仍亳亟亳舒仆亳, 仆仂仄舒仍亳亰亳舒仆亳 亳 亳仍亳舒仆亳. 舒亟仍亢亳亠仍仆仂 磡于舒 亟舒 弍亟舒 仗亠于仍亠仆亳 仂仗亠亟亠仍亠仆亳 亰仆舒亳, 于 仂于亠仆亳亠 亳仄 HTML entry 亳 亟舒 弍亟舒 亳亰仗舒舒仆亳 从仄 弍舒亰舒 舒仄仂 于 仂亰亳 于亳亟. 舒亟仍亢亳亠仍仆仂 磡于舒 亟舒 亠 从仂仆于亠亳舒: & -> &amp; < -> &lt; > -> &gt;
  • 4. -> &quot; -> &#x27; / -> &#x2F; 仂亞舒仂 从仄 弍舒亰舒 弍亟亠 亳亰仗舒亠仆 &lt; 亠 亞仂 于亳亰舒仍亳亰亳舒 从舒仂 < 仂亠 <script 亠 弍亟亠 亳亰仗舒亠仆仂 从舒仂 &lt;script , 亳 弍舒亰亰舒 仆礆舒 亟舒 亞仂 亳亰仗仍仆亳 从舒仂 javascript. 亠 仍舒亞舒亶亠 仍亳仆亳 亟舒仆仆亳 亳 从仂仄亠仆舒亳 仆舒 亠亟仆舒 舒仆亳舒 XSS 仆亠 亠 舒仄仂 亰舒 从舒亟亠仆亠 仆舒 亠亳, XSS 仄仂亢亠 亟舒 于亰亠仄亠 磿舒舒 HTML 舒仆亳舒, 亳仍亳 舒 仂 仆亠, 亳 亟舒 亳亰仗舒亳 仆舒 仆磻仂亶 于. 丐仂亠 舒从仂 仆舒 舒仆亳舒舒 亰舒 仗仂亳仍 仆舒 仗仂亠弍亳亠仍 亳仄舒亠 仆磻舒从于仂 仗仂仍亠, 亳亶仂 亟舒仆仆亳 亳亟于舒 仂 于仆仆亳 仗仂亠弍亳亠仍亳, 仂 舒从仂 仄亳仆亠 XSS 舒舒从舒, 仂亰亳 从仂亟, 亠 仄仂亢亠 亟舒 于亰亠仄亠 磿舒舒 舒仆亳舒 于亳从亳 亟舒仆仆亳 仆舒 仗仂亠弍亳亠仍. HTTPOnly 仍舒亞 仆舒 弍亳从于亳从亳亠 亠从亳 亠亰亳从 仗仂亰于仂仍磦舒 仂亰亳 仍舒亞 亟舒 弍亟亠 于亟亳亞仆舒, 亳 仗仂于亠亠仂 弍舒亰亳 亞仂 仗舒亰于舒. 丐仂于舒 从仂亠仂 仗舒于亳 亠, 亠 仆亠 仗仂亰于仂仍磦舒 仆舒 JS 亟舒 亠亠 亠亰亳 弍亳从于亳从亳. 丐仂亠 舒从仂 仄亳仆亠 XSS, 仂 从仂亟舒 仆亠 仄仂亢亠 亟舒 于亳亟亳 弍亳从于亳从亳亠 仂亰亳 仍舒亞, 仂亠 仆礆舒 从舒亢弍舒 仆舒 亠亳. 舒 IP 仆亠 仄仂亢亠 亟舒 亠 舒亰亳舒 仂仍礆舒 舒 仂 仂舒舒 舒 亟亳仆舒仄亳仆亳 IP 舒亟亠亳, 亟亞亳 仄亳仆舒于舒 (亟仂弍仂于仂仍仆仂 亳仍亳 仆亠) 仗亠亰 仗仂从亳 于亳, 亳 亠 于亰仄仂亢仆仂 2 亰舒磦从亳 仂 亠亟亳仆 亳 亳 仗仂亠弍亳亠仍, 亟舒 亟仂亶亟舒 仂 2 舒亰仍亳仆亳 舒亟亠舒, 亟仂亳 亳 亰舒磦从亳亠 亟舒 舒 于 舒仄从亳亠 仆舒 亠从仆亟舒. 磻仂亶 亟仂舒于亳亳 仗舒于 仆亠舒舒 仂亠 仗仂-亰仍亠, 从舒仂 AOL , 仗仂仆亠亢亠 仗亳 于磻舒 亰舒磦从舒 亠 舒亰仍亳仆仂 IP, 亳 仆舒 于亳从仂 仂亞仂亠 亠 亳 仂 舒亰仍亳亠仆 亞舒亟. 亳仄亠仆舒 XSS 舒舒从舒 从仄 仂仄舒, 从仂仂 仆亠 亠 亰舒亳亠仆舒 仗仂 仆亳从舒从于 仆舒亳仆. 个仂仄舒舒 亠 仗亳仄亠仆舒 亳 仗亠亟舒于仍磦舒 舒 仂 仂仄舒 亰舒 亠亞亳舒亳. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>仂仆舒从仆舒 仂仄舒</title> </head> <body> <form action="contact_insert12.php" method="post" name="forma12"> <table width=400 border=1>
  • 5. <tr> <td align="left"> <p>仄亠:<br/> <input type="text" size="20" name="fname" /></p> <p>个舒仄亳仍亳:<br/> <input type="text" size="20" name="lname"/></p> <p>舒亠仍亠仆仂 仄仂:<br/> <input type="text" size="20" name="place1"/></p> <input type="submit" name="submit" value="亰仗舒亳"/> </td> </tr> </table> </form> </body> </html> 弌从亳仗 从仄 仂仄舒舒, 从仂亶仂 亠 亳亰于亠亢亟舒 于于亠亟亠仆亳亠 亟舒仆仆亳 <?php if(isset ($_POST['submit'])) { $fname = $_POST['fname']; $lname = $_POST['lname']; $place1 = $_POST['place1']; print '仄亠: ' . $fname . '<br /> 个舒仄亳仍亳: ' . $lname . '<br /> 舒亟: ' . $place1; } ?> 仂亟 仆舒 仆舒舒舒 舒舒从舒, 从仂亶仂 仄仂亢亠 亟舒 亠 仗仂舒于亳 于 从仂亠仂 亳 亟舒 亠 仂 亠从仂于亳亠 仗仂仍亠舒: <div style="text-align: center;"><p style="font-family: Verdana; font-style: normal; font-variant: normal; font-weight: bold; font-size: 36px; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(255, 0, 0);">This page has been Hacked!</p><img src=/slideshow/5494-n-nikolovzashtita-16130463/16130463/"http:/ha.ckers.org/images/stallowned.jpg" border="0"><p style="font-family: Arial; font-style: italic; font-variant: normal;
  • 6. font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; color: rgb(221, 221, 221);">XSS Defacement</p></div> 亠亰仍舒, 从仂亶仂 亠 仗仂仍亳仄 亠 仍亠亟仆亳: 从仂 仆舒仗舒于亳仄 亠亟仆舒 仆从亳 亳仄亠 security, 从仂仂 亠 亳仄舒 亟于舒 仗舒舒仄亠舒. 于亳 亠 弍亟亠 亳仆亞舒 亟舒仆仆亳亠, 从仂亶仂 亳从舒仄亠 亟舒 仗仂于亠亳仄, 舒 于仂亳 仆礆舒 亟舒 亠 亰舒亟仍亢亳亠仍亠仆 亳 亠 弍亟亠 亰舒 仄舒从亳仄舒仍仆舒 仂亶仆仂 仆舒 仗舒舒仄亠舒. <?php function security($data, $max = null) { if(is_numeric($data)) { if($max == null) { return (int)$data; } else { if($data <= $max) { return (int)$data; } else { return "于亠亟亠仆舒舒 仂亶仆仂 亠 仗亠从舒仍亠仆仂 亞仂仍礆舒!"; } } } else {
  • 7. if($max == null) { $data = htmlspecialchars(addslashes($data)); return $data; } else { if(strlen($data) <= $max) { $data = htmlspecialchars(addslashes($data)); return $data; } else { return "丐仂于舒 仗仂仍亠 仆亠 仄仂亢亠 亟舒 亟亢舒 仗仂于亠亠 仂 $max 亳仄于仂仍舒"; } } } } if(isset ($_POST['submit'])) { $fname = security ($_POST['fname'], 10); $lname = security ($_POST['lname'], 15); $place1 = security ($_POST['place1'], 15); print '仄亠: ' . $fname . '<br /> 个舒仄亳仍亳: ' . $lname . '<br /> 舒亟: ' . $place1; } ?> 亠亰仍舒, 从仂亶仂 亠 仗仂仍亳仄 亠 仍亠亟仆亳
  • 8. 舒亳舒 仂 SQL Injection SQLi 亠 亳亰仗仂仍亰于舒 亰舒 亰仍仂仆舒仄亠亠仆仂 亳亰仗仍仆亠仆亳亠 仆舒 SQL 亰舒磦从舒 从仄 弍舒亰舒舒 亟舒仆仆亳. 丼亠亰 舒亰亳 亠仆亳从舒 仄仂亢亠 亟舒 弍亟舒 亠从仗仍仂舒亳舒仆亳 磶于亳仄亳 从仂亟仂于亠. SQL 亳仆亢e从亳pa仆eo e 仆a亶-eco cpea仆aa y磶于亳仄oc 于 PHP 仗p亳仍o亢e仆亳a. To ce oc仆o于a于a 仆a 亞pe从a 仆a PHP 仗po亞pa仄亳ca, 仗p亳 从oo 仆e ce 亳仍p亳pa 亳仆op仄a亳a, 仗o亟a亟e仆a 从仄 弍a亰aa 亟a仆仆亳. 丼eco 仆e ce 亳仍p亳pa 亳 于p仆a亳 pe亰y仍a, 仗p亳 从oeo ce pa亰从p亳于a e仆仆亳 亟a仆仆亳 亳 仗亳a. 亳仄亠 亰舒 o仗ac仆oc o MySQL Injection. A从o c从p亳仗 亰a 于xo亟 于 c亳ce仄aa 亳仄a c亳仆a从c亳c o po亟a: $sql = "SELECT * FROM users WHERE username = '$user' AND password = '$pass'". A从o 从仄 a亰亳 亰a磦从a, 仆apy亳e仍 仗o亟a亟e e亟亳仆亳仆a 从舒于亳从舒 亰a 仗ope弍亳e仍c从o 亳仄e 亳 仗po亳亰于o仍仆a 仗apo仍a, 亰a磦从aa e 于p仆e c仍e亟仆aa 亞pe从a: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE username = ' ' ' AND password = 'sometext C 仄仆o亞o 仄a仍从o pa弍oa (仗o亟a于a仆e 仆a 从a于亳从a), 仆apy亳e仍 于ee 亰仆ae 亳仄e仆aa 仆a 亟于e 从o仍o仆亳 o a弍仍亳aa 亳 o于a, e 亟a仆仆亳e 亳 于 亟于ee 仗oco从亳 仆e ca 亳仍p亳pa仆亳 仗pa于亳仍仆o. Hapy亳e仍 亰仆ae 亳 c亳仆a从c亳ca 仆a 从仍ay亰aa WHERE, o 从亟eo 仄o亢e 亟a c亳 c亞仍o弍亳 亰a磦从亳 亰a 于c亳从o, 从oeo 仄y p磡于a, 仆舒仗亳仄亠: myuser ' or 'foo' = 'foo' -- A从o o于a ce 于于e亟e 从ao 仗ope弍亳e仍c从o 亳仄e, 仆apy亳e仍 e 于仍e亰e yc仗e仆o 于 c亳ce仄aa, 弍e亰 亟a 亳仄a 仆亳o 仗ope弍亳e仍c从o 亳仄e, 仆亳o 仗apo仍a. A a从o 仆apy亳e仍 亰仆ae 仗ope弍亳e仍c从o 亳仄e c 仆y亢仆亳e 仄y 仗pa于a, o亶 仄o亢e 亟a 于仍e亰e 亳 c 仆e亞o, 弍e亰 亟a 仄y ce 仆a仍a亞a 亟a 亰仆ae 仗apo仍aa, 仗poco 于于e亢亟a 亰a 仗ope弍亳e仍: cloxy' -- SQL 亳仆亢e从亳pa仆eo 仄仂亢亠 亟舒 弍亟亠 亳亰弍亠亞仆舒仂. c亳从亳 仗po仄e仆仍亳于亳, 从o亳o ce 于从ap于a 于 e亟仆a MySQL 亰a磦从a, p磡于a 亟a 弍亟a 亳仍p亳pa仆亳 c y仆从亳a mysql_real_escape_string(). B 亞op仆亳 仗p亳仄ep, o于a ca 仗po仄e仆仍亳于亳e $user 亳 $pass. C亳仆a从c亳c e 从舒从仂 c仍e亟于a: $user = mysql_real_escape_string($user) 亳 a从a 亰a $pass. 舒亶-仍亠仆亳 仆舒亳仆 亟舒 亠 仗亠亟仗舒亰亳亠 仂 SQL 亳仆亢亠从亳亳 亠 亟舒 亳仍亳舒亠 于亳从亳 于仂亟亳 亟舒仆仆亳. 舒仗亳仄亠 , 亠亰 仆从亳亳亠: htmlspecialchars(); addslashes(); 亳 trim();
  • 9. 个仆从亳亳 htmlspecialchars() - 仗亠仂弍舒亰于舒 仗亠亳舒仍仆亳 亰仆舒亳 于 html 亠亟亳仆亳亳 addslashes() - 亠从舒仆亳舒 仗亠亳舒仍仆亳亠 亰仆舒亳 仆舒 亟舒亟亠仆 亳仆亞 trim() - 仗亠仄舒于舒 亰仆舒亳 于 仆舒舒仍仂仂 亳 从舒 仆舒 亟舒亟亠仆 亳仆亞 htmlentities() - 仗亠仂弍舒亰于舒 于亳从亳 仗仂亟仂亟亳 亰仆舒亳 于 HTML 亠亟亳仆亳亳 亳 亠 .. 仂亟仆舒 htmlspecialchars(); 仂仗仍仆亳亠仍仆舒 亰舒亳舒 仄仂亢亠 亟舒 弍亟亠 仆舒仗亳于舒仆亠仂 仆舒 从亳仗, 从仂亶仂 仗仂于亠磦舒 亰舒 亞亠仆亳 仗舒仂仍亳 - 仗亳 3 亞亠仆亳 仂仗亳舒 亰舒 于仂亟 亞亠仆舒 仗舒仂仍舒 于 弍舒亰舒舒 亟舒仆仆亳, 舒从舒仆舒 亠 亰舒从仍ム于舒 亰舒 15 仄亳仆亳. 亳亳仆亳 亰舒 磶于亳仄仂亳 从仄 SQLi 于 亳亠仄舒舒 仄仂亞舒 亟舒 于亰仆亳从仆舒 于 亠亰亳 仍舒亶: - 亠亰 亳仍亳舒仆亠 仆舒 于仂亟亳亠 亟舒仆仆亳 - 丕磶于亳仄仂 于 于舒 仆舒 弍舒亰舒舒 亟舒仆仆亳 亠仂亟亳 亰舒 亰舒亳舒 仂 SQL 亳仆亢亠从亳: - 个亳仍亳舒仆亠 仆舒 亟舒仆仆亳亠 - 亰从仍ム于舒仆亠 仆舒 亟仂从仍舒亟亳亠 亰舒 亞亠从亳. - 弌亰亟舒于舒仆亠 仆舒 仗仂亠弍亳亠仍, 仗仂-仄舒仍从仂 仗亳于亳仍亠亞亳亳. - 舒从亳仄舒仍仆舒 仂亶仆仂
  • 10. 亰仗仂仍亰于舒仆舒 仍亳亠舒舒 C. Snider, T. Mayer, M. Southwell, Pro PHP Security - Second edition J. Grossman, R. Hansen, P. Petkov, A. Rager, XSS Attacks R. Alvarez, D. Hartley, J. Hamler, H. Meer, SQL Injection http://web-tourist.net https://www.owasp.org http://gatakka.eu http://www.cphpvb.net