การ encode จาว่าสคริปต์ ด้วย PHP

การเข้ารหัสให้กับ javascript

ด้วยสคริปต่างๆ ที่เราแสดงไว้ในเวปเพจนั้น เราไม่สามารถที่จะซ่อนสคริปต่างๆ ไว้ได้ แต่เราสามารถที่จะเข้ารหัสเพื่อให้บางคนคัดลอกออกไปได้ยากขึ้นเท่านั้น ด้วยการใช้ 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,662 วันที่สร้าง : 19/04/2021