banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận thâm nhập Hỏi về javascript  XML
  [Question]   Hỏi về javascript 01/06/2011 15:29:48 (+0700) | #1 | 238366
xBoyx
Member

[Minus]    0    [Plus]
Joined: 04/12/2010 08:58:30
Messages: 37
Offline
[Profile] [PM]
em chỉ biết sơ về javascript thôi, em có một thắc mắc này. các đoạn mã javascript được tải về chạy phía client vậy phía client có thể sửa lại code javascript để chạy theo ý mình muốn được không? giống như kiểu patch chương trình vậy đó
ví dụ như đoạn mã sau dùng để kiểm tra tên đăng nhập vào một chatroom, chỉ được nhập tên là các chữ cái, không được có các kí tự lạ như %><?~. Vậy làm sao có thể hack được?
<<em chỉ muốn học hỏi thêm về bảo mật, không có ý định phá hoại mong các anh đừng hiểu nhầm>>

function check() {
var i=0;
var strtopic=document.login.username.value;
//Xử lý khoảng trắng đầu chuỗi
if(strtopic.substring(i,i+1)==" "smilie
while(strtopic.substring(i,i+1)== " "smilie {
alert("Kí tự đầu tiên không được nhập khoảng trắng !!!"smilie;
document.getElementById('u1').value="";
document.login.username.focus();
i++;
return false;
}
for(;i<strtopic.length;i++) {
if(!isNaN(strtopic.charAt(0))) {
alert("Bắt đầu không thể là một kí tự số !!!");
document.getElementById('u1').value="";
document.login.username.focus();
return false;
}
//Xử lý khoảng trắng giữa chuỗi
/*if(strtopic.substring(i)==" ") {
alert("Nick không được có khoảng trắng !!!")
document.getElementById('u1').value="";
document.login.username.focus();
return false;
}*/
continue;
}
String.prototype.cleanup = function() {
//return this.toLowerCase().replace(/[^a-zA-Z0-9]+/g, "_");
return this.replace(/[^a-zA-Z0-9-_]+/g, "_");
}
// Using our new .cleanup() method
var clean = strtopic.cleanup(); // hello-world
document.getElementById('u1').value=clean;
return true;
}>
[Up] [Print Copy]
  [Question]   Hỏi về javascript 02/06/2011 17:14:31 (+0700) | #2 | 238473
xBoyx
Member

[Minus]    0    [Plus]
Joined: 04/12/2010 08:58:30
Messages: 37
Offline
[Profile] [PM]
sao không bạn nào trả lời dùm mình hết vậy. mình thực sự rất muốn biết mà
[Up] [Print Copy]
  [Question]   Hỏi về javascript 02/06/2011 23:52:43 (+0700) | #3 | 238543
[Avatar]
khigiadano
Member

[Minus]    0    [Plus]
Joined: 27/02/2008 18:20:56
Messages: 370
Location: http://aspx.vn
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!]
Để "hack" như bạn nói thường thì cũng chẳng cần dùng đến những ký tự mà bạn muốn chặn như %><?~

Bạn có nắm về các lệnh truy vấn SQL không ?
Yahoo ID: khigiadano - Tel: 0907.870.676 - Email: khigiadano@gmail.com
Mình rất kém, vào đây học hỏi kinh nghiệm thôi...
[Up] [Print Copy]
  [Question]   Hỏi về javascript 03/06/2011 07:35:46 (+0700) | #4 | 238590
xdvkxdvk
Member

[Minus]    0    [Plus]
Joined: 23/05/2007 10:13:58
Messages: 27
Offline
[Profile] [PM]
giả sử đã hoàn thành kiểm tra xong dữ kiệu nhập, nhưng người ta bắt packet và edit nó trước khi send cho server thì sao hả bạn . smilie
[Up] [Print Copy]
  [Question]   Hỏi về javascript 03/06/2011 08:47:44 (+0700) | #5 | 238599
[Avatar]
.lht.
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 10:06:38
Messages: 75
Location: Inside you
Offline
[Profile] [PM]

xBoyx wrote:
em chỉ biết sơ về javascript thôi, em có một thắc mắc này. các đoạn mã javascript được tải về chạy phía client vậy phía client có thể sửa lại code javascript để chạy theo ý mình muốn được không? giống như kiểu patch chương trình vậy đó
ví dụ như đoạn mã sau dùng để kiểm tra tên đăng nhập vào một chatroom, chỉ được nhập tên là các chữ cái, không được có các kí tự lạ như %><?~. Vậy làm sao có thể hack được?
<<em chỉ muốn học hỏi thêm về bảo mật, không có ý định phá hoại mong các anh đừng hiểu nhầm>>

function check() {
var i=0;
var strtopic=document.login.username.value;
//Xử lý khoảng trắng đầu chuỗi
if(strtopic.substring(i,i+1)==" "smilie
while(strtopic.substring(i,i+1)== " "smilie {
alert("Kí tự đầu tiên không được nhập khoảng trắng !!!"smilie;
document.getElementById('u1').value="";
document.login.username.focus();
i++;
return false;
}
for(;i<strtopic.length;i++) {
if(!isNaN(strtopic.charAt(0))) {
alert("Bắt đầu không thể là một kí tự số !!!");
document.getElementById('u1').value="";
document.login.username.focus();
return false;
}
//Xử lý khoảng trắng giữa chuỗi
/*if(strtopic.substring(i)==" ") {
alert("Nick không được có khoảng trắng !!!")
document.getElementById('u1').value="";
document.login.username.focus();
return false;
}*/
continue;
}
String.prototype.cleanup = function() {
//return this.toLowerCase().replace(/[^a-zA-Z0-9]+/g, "_");
return this.replace(/[^a-zA-Z0-9-_]+/g, "_");
}
// Using our new .cleanup() method
var clean = strtopic.cleanup(); // hello-world
document.getElementById('u1').value=clean;
return true;
}> 


Hoàn toàn có thể fake được .
Tại sao bạn không code đoạn kiểm tra đó qua 1 trang php trung gian ? Như vậy sẽ an toàn hơn rất nhiều.
Bạn có thể sử dụng những phần mềm Proxy Debugger như Charles để thực hành chặn và fake ...
Trash from trash is the place for new good things ~
[Up] [Print Copy]
  [Question]   Hỏi về javascript 03/06/2011 10:30:30 (+0700) | #6 | 238614
[Avatar]
secmask
Elite Member

[Minus]    0    [Plus]
Joined: 29/10/2004 13:52:24
Messages: 553
Location: graveyard
Offline
[Profile] [PM] [WWW]
Validate phía client bằng javascript chỉ mang tính tiện ích, một user hoàn toàn bypass tất cả những đoạn check của bạn ở phía client(sử dụng javascript), nên phía server phải kiểm tra lại tất.
[Up] [Print Copy]
  [Question]   Hỏi về javascript 08/06/2011 00:38:17 (+0700) | #7 | 239649
[Avatar]
keyboardDigger
Member

[Minus]    0    [Plus]
Joined: 27/03/2008 16:45:48
Messages: 26
Offline
[Profile] [PM]
Chính xác. Vì hầu như chẳng ai phó mặc sự an toàn của mình cho phần xử lý phía client (dễ dàng bị xào nấu tất tần tật dễ như nghịch xâu ký tự vậy), cho nên thường thì có lẽ bạn không bẻ được gì từ chỗ code này đâu
Thấy vui mỗi lần nhận ra mình có thể viết lại sản phẩm trong quá khứ hiệu quả và gọn gàng hơn 1 nửa
[Up] [Print Copy]
  [Question]   Hỏi về javascript 08/06/2011 10:50:56 (+0700) | #8 | 239698
xBoyx
Member

[Minus]    0    [Plus]
Joined: 04/12/2010 08:58:30
Messages: 37
Offline
[Profile] [PM]
cảm ơn các bạn. Mình đã thử và kiểm chứng đúng là như vậy
[Up] [Print Copy]
  [Question]   Hỏi về javascript 08/06/2011 14:46:19 (+0700) | #9 | 239720
[Avatar]
chiro8x
Member

[Minus]    0    [Plus]
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
[Profile] [PM] [Yahoo!]

xdvkxdvk wrote:
giả sử đã hoàn thành kiểm tra xong dữ kiệu nhập, nhưng người ta bắt packet và edit nó trước khi send cho server thì sao hả bạn . smilie  

Không ai phó mặc chuyện bảo mật cho client đâu smilie đừng lo :"<. Chắc chắn chúng sẽ được check và lọc lại trên server.
while(1){}
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|