PDA

View Full Version : Protect javscript, is it a possible solution?



whitepenguin
05-05-2009, 12:29
Tui có tham khảo 1 số cách để bảo vệ javascript, hầu hết là encrypt javascript code và link tới source file.
Cách này không phải là cách hoàn chỉnh lắm. Vì nếu như người ta chịu khó learn decrypt code thì họ sẽ giải ra được mình viết gì.

Hôm nay, tình cờ lên mạng quờ quạng, lạc ngay vào cái forum, họ bàn tới việc bảo vệ JScript file bằng cách dùng session tại server side. Tui không có code vì người ta viết bằng PHP, không nhớ rõ lắm. Nhưng đại khái là cũng nắm được 1 số điểm chính. Nên post lên đây đặng mọi người cho ý kiến. Liệu cách này có phải là Perfect solution hay không. Không biết có ai implement chưa

Minh họa :
Có 2 file , 1 file là javscript 1 file là webpage ,cả 2 file này có thề cùng là Php hoặc cùng là ASPX (như cả nhau thôi)
VD: Mypage.aspx và MyJS.aspx
1. Implement file Web: Mypage.aspx
Minh họa đoạn chèn javascript và mã giả

variable myss=timestamp.generatestring() ;
session["MyJS"]=myss;
<script type='javascript/text' src='MyJS.aspx?ss=myss></script>


2. Implement file MyJS.aspx
//Query được xem như là collection of Query string

ClearBrowserCache();
SetCacheExpired(Always);

variable myQ=Query['ss']
if(myQ!=null&&Session["MyJS"]!=null&&Session["MyJS"]==myQ)
{
ClearSession["MyJS"];
//---------JS content ở chỗ này
ClientWrite(
function ***x()
{
}
.......................);
}
else
ClientWrite("Access denied")


Nếu ai có cách hay hơn post lên cho tui xem tí
Tui để ý thấy việc clearBrowserCache làm cho Browser cấm lưu nội dung file Javscript.

jiSh@n
05-05-2009, 12:44
Dùng addon Firebug của Firefox thì vẫn hốt trọn ổ như thường =))

whitepenguin
05-05-2009, 12:50
Vậy chắc chỉ còn có 1 cách là làm cho JS file khó đọc bằng cách compress và chuyển tên biến về dạng đơn giản tối nghĩa...........

temp2
05-05-2009, 13:00
Vậy chắc chỉ còn có 1 cách là làm cho JS file khó đọc bằng cách compress và chuyển tên biến về dạng đơn giản tối nghĩa...........

đây là cách tốt nhất hiện nay, các JS FW đều dùng, hoặc là pác có thể mã hóa (http://javascriptbank.com/service/encrypt/) nó