ด้วยสคริปต่างๆ ที่เราแสดงไว้ในเวปเพจนั้น เราไม่สามารถที่จะซ่อนสคริปต่างๆ ไว้ได้ แต่เราสามารถที่จะเข้ารหัสเพื่อให้บางคนคัดลอกออกไปได้ยากขึ้นเท่านั้น ด้วยการใช้ JavascriptPacker
ด้วยโค๊ดตัวอย่างดังนี้
<html>
<head>
<title>Sample</title>
</head>
<body></body>
<body>
<?php
// เรียก class
include 'class.JavaScriptPacker.php';
// สร้างฟังชั่นสำหรับ encode
function encodejavascript($script){
$packer = new JavaScriptPacker($script, 62, true, false);
$packed = $packer->pack();
return $packed;
}
?>
<script>
<?php
// นำ javascript มา encode พร้อมกับ echo แสดงออกมา
echo encodejavascript("
function alerthello(){
alert('Hello Nanacontent.com');
}
");?>
</script>
<div>
<input type="button" value="กดเพื่อ alert" onclick="alerthello();"/>
</div>
</body>
</html>
จากโค๊ดได้ผลลัพธ์ดังหน้าจอดังนี้
อธิบายโค๊ด
- มีการเรียกใช้ class.JavaScriptPacker.php
- มีการนำ script ไป encode ด้วยคำสั่งหลัก
$packer = new JavaScriptPacker($script, 62, true, false);
$packed = $packer->pack();
-เมื่อ encode เรียบร้อย ให้ echo $packed เพื่อกลับมาแสดงค่าในเวปเพจเหมือนเดิม เมื่อ view source จะได้ออกมาเป็นอย่างนี้
<script>
eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp(''+e(c)+'','g'),k[c])}}return p}('5 4(){3('2 1.0')}',6,6,'com|Nanacontent|Hello|alert|alerthello|function'.split('|'),0,{}))
</script>
หลังจากที่ encode ออกมาแล้ว จะต้องลองทดสอบโปรแกรมให้ละเอียดทุกครั้งว่ายังคงทำงานได้เหมือนกับก่อนที่จะ encode หรือไม่ เพื่อป้องกันการผิดพลาดนะครับ
สามารถโหลดไฟล์ class ได้จากที่
https://gist.github.com/sinkidmark/c67b0650a2ad36e5854986984ca66338
จำนวนคนดู : 2,820 | วันที่สร้าง : 19/04/2021 |