Javascipt Injection (bài 1)
Mọi người đã quá quen thuộc với SQL Injection. Hôm nay, mình xin được giới thiệu một bài viết về Javascript Injection của tác giả: Hamid
-------------------------------------------
Yêu cầu: kiến thức cơ bản về html code
-------------------------------------------
Phần 1: Cơ bản về Javascript (phần này chống chỉ định: những người đã quen thuộc với Javascipt )
Trước tiên bạn cần phải biết thẻ dùng để chạy một đoạn mã Javascript nhúng trong một trang web, đó là <script>. Với Javascript, bạn dùng thẻ <script language="javascript">, hoặc có thể là <script type=”text/javascript”> (cái này có vẻ phổ biến nhất). Tất nhiên để kết thúc phải có </script>
Để comment trong Javascript, nghĩa là không chạy script, bạn chỉ cần thêm <!-- ở đầu và //--> ở cuối đoạn mã
Code:
<script language=”javascript”> <!--cool code here //--> </script>.
Bây giờ hãy bắt đầu với một chương trình đơn giản
Code:
<script language="javascript">
<!--
document.write("hello world");
//-->
</script>
Bạn hãy chú ý cách thêm một đoạn text bằng hàm document.write().
Nó sẽ xuất ra chính xác những gì bạn muốn trong dấu " ".
Bây giờ làm quen với khái niệm biến nhé
Code:
var First_Variable = 34;
var Second_Variable = 'a';
var Third_Variable = "hello";
Dùng var để khai báo biến (sẽ chiếm một mẩu nhỏ trong bộ nhớ máy chủ).
Bạn có thể gán giá trị bạn muốn.
Loại biến có thể là số, ký tự hay chuỗi.
Khi khai báo biến có nhiều hơn một ký tự, bạn phải đặt trong dấu " ". Để hiển thị giá trị của biến, dùng hàm document.write() nếu trên, nhưng ko có dấu " "
Ví dụ:
Code:
var one = “hello world”;
document.write(one);
sẽ đưa ra trình duyệt:
hello world
Nếu muốn kết nối 2 biến
Code:
var one = “hello”;
var two = “world”;
document.write(one + two);
kết quả sẽ là
helloworld
[/b]Alerts:[/b]
Alert dùng để mở một box nhỏ tự động xuất hiện ở giữa màn hình kèm theo một tin nhắn:
Code:
alert(“hello new user”);
Nếu bạn muốn user xác nhận bằng cách click vào nút 'Ok' hay 'Cancel':
Code:
confirm(“are you sure you want to come”);
Tiếp theo, chúng ta sẽ tìm hiểu sâu thêm với array và dates.
Một array là một mẩu dữ liệu chứa nhiều hơn một giá trị.
Nếu như một biến tên là "one" chỉ có thể lưu 1 giá trị là 1, một array có thể lưu các giá trị ‘1’, ‘2’, và ‘3’...
Để tạo một array, sử dụng hàm cho sẵn của JS: new Array().
Code:
var SixMonthCalander = new Array(“jan”,“feb”,“mar”,“april”,“may”,“june”);
Khai báo này sẽ gán array với tên của 6 tháng đầu. Để hiển thị array, bạn dùng hàm document.write(), nhưng sau tên biến kiểu array, thêm vào [x] trong đó x là một số. Số này là thứ tự mà bạn đã gán giá trị cho array. Trong vd trên [0] tương đương với “jan”, bởi vì máy tính đếm từ zero ^^.
Code:
document.write(SixMonthCalander[0]);
Giá trị hàm này xuất ra dĩ nhiên là jan rồi.
Vì đây chỉ là đoạn mã có tính chất "client side", nên để lấy đưa thông tin ra trang web bạn cần phải truy nhập thông tin ngày tháng lấy từ máy của trình duyệt bằng cách sử dụng hàm new Date() trong JS.
Code:
var the_date = new Date();
var the_hour = the_date.getHour();
var the_minute = the_date.getMinute();
document.write(the_hour+":"+the_minute);
Những kiến thức này là chuyện nhỏ đối với những người đã quen thuộc với các ngôn ngữ lập trình khác như C hay Java, nhưng mình muốn đi kĩ hơn để một
số bạn newbie hấp thụ được ^^.
Tiếp nhé!
Hãy nói qua về Boolean - biến logic với 2 giá trị: true(đúng) và false(sai)
Câu trúc if() hoặc if() else() là 2 cấu trúc đơn giản mà tôi muốn đề cập đến
Một ví dụ đơn giản
if(x == 10) {
Do something
}
else {
do something else
}
Form handling:
Bây giờ bạn muốn làm một phép toán đơn giản sử dụng thẻ form và ngôn ngữ javascript. Nếu bạn hiểu hết từ đầu đến đoạn này thì bạn cũng sẽ thực hiện
công việc này ko mấy khó khăn. Tôi sẽ viết code và các bạn tự hiểu nhé ^^
Code:
<html>
<head>
<script language=”javascript”>
<!--
Function add() {
var total = one + two;
alert(total);
}
//-- >
</script>
</head>
<body>
<form name=”the_form”>
<input type=”text” name=”one”> <input type=”text” name=”two”>
<input type=”button” “value=”add them” onClick=”add()”>
</form>
</body>
</html>
onClick chỉ định công việc khi bạn click vào button. Bạn có thể tham khảo thêm như onBlur(), onFocus(), onMouseOver(), và onMouseOut()
Loops:
Nhiều lúc, khi viết chương trình, bạn muốn lặp lại một công việc nhất định, bạn có thể sử dụng cấu trúc vòng lặp như sau:
Code:
for(var counter = 0; counter < 5; counter++) {
document.write(counter);
}
counter=0 là khai báo giá trị ban đầu cho biến
counter < 5 là điều kiện, nếu điều kiện đúng thì tiếp tục vòng lặp, sai thì sẽ kết thúc
counter++ là dữ liệu cập nhật. Cứ mỗi vòng lặp, biến counter sẽ tăng thêm 1
Kết quả của code trên sẽ là 01234
Vd khác:
Code:
for(var counter = 0; counter < 5; counter++) {
document.write(SixMonthCalendar[counter]);
}
Ở đây giả sử trước đó bạn đã khai báo var SixMonthCalander = new Array(“jan”,“feb”,“mar”,“april”,��may”,“june”);
Kết quả code trên sẽ là janfebmaraprilmayjune
Ngoài for ra, còn có 2 kiểu loops khác nữa là
do{
document.write(“owned”)
something++;
}while(something < something_else);
document.write(“owned”)
while(something < something_else) {
document.write(“owned”)
something++;
}
2 kiểu này ít dùng vì nó ko dễ cho người dùng với những chương trình đòi hỏi lặp lại 1 số lần nhất định
Pop-up windows:
Không cần nói nhiều bạn cũng hiểu chút ít về pop-up.
Một số trình duyệt mới có thể sẽ khóa cn pop-up của trang web
nhưng cũng có một số điều bạn cần biết
Để mở cửa sổ mới trong JS, dùng lệnh window.open();.
Bạn có thể gán giá trị mặc định của cửa sổ mới.
Giả sử file mà bạn muốn pop-up là little.html.
Đây là code bạn có thể làm điều này window.open('little.html','width=50,height=50');
Vd:
var mini_win = window.open();
lil_win.document.write("this is my little window");
Có một số chức năng thú vị bạn có thể thêm vào như toolbar, statusbar, noresize, titlebar, windowbar, addressbar, vv...
Muộn rùi đi ngủ đã.
Tạm dừng ở đây. Ngày mai mình sẽ dịch phần chính của bài viết!
Nasbla (VNISS)