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 hệ điều hành Windows Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X  XML
  [Programming]   Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 30/03/2009 23:00:05 (+0700) | #1 | 175327
[Avatar]
proA.Vito
Member

[Minus]    0    [Plus]
Joined: 21/01/2009 00:46:01
Messages: 49
Location: Cõi hư vô
Offline
[Profile] [PM] [Email]
Thời gian này em đang nghiên cứu về AJAX, nhưng cũng có nhiều điều mà em cảm thấy không rõ lắm. Em đã tìm hiểu nhiều quyển sách, nhưng cũng chỉ nói sơ qua về các khía cạnh này... Mong mọi người giứp đỡ em ạ!!!

1) AJAX có rất nhiều framework hỗ trợ, mà em thì chẳng biết nên dùng cái nào... Mọi người có thể tư vấn cho em được ko ạ?
2) Trong 1 trang web thuơng mại thì mình nên đưa ajax vào những chức năng nào?
3) Em nghe nói AJAX có khá nhiều lỗ hổng bảo mật. Đó là những lỗi nào và cách khắc phục ra sao.

Thanks mọi người nhiều :X :X :X
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 30/03/2009 23:09:23 (+0700) | #2 | 175329
ngonchan
Elite Member

[Minus]    0    [Plus]
Joined: 23/02/2004 12:03:51
Messages: 136
Offline
[Profile] [PM] [WWW] [Yahoo!]
1. Bạn có thể thử qua JQuery framework, dễ học, dễ sử dụng.
2. vd cho bạn một chức năng: kiểm tra tên đăng nhập khi người dùng đăng kí thành viên vào trang web, sử dụng Ajax để xem tên người dùng vừa nhập vào đã tồn tại hay chưa.
3. Giải quyết 2 cái trên đi đã smilie
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 30/03/2009 23:29:33 (+0700) | #3 | 175333
[Avatar]
proA.Vito
Member

[Minus]    0    [Plus]
Joined: 21/01/2009 00:46:01
Messages: 49
Location: Cõi hư vô
Offline
[Profile] [PM] [Email]

ngonchan wrote:
1. Bạn có thể thử qua JQuery framework, dễ học, dễ sử dụng.
2. vd cho bạn một chức năng: kiểm tra tên đăng nhập khi người dùng đăng kí thành viên vào trang web, sử dụng Ajax để xem tên người dùng vừa nhập vào đã tồn tại hay chưa.
3. Giải quyết 2 cái trên đi đã smilie 


Em tưởng là dùng ajax thì là dùng các sự kiện trên javascript, vị dụ sự kiện onblur ở ô text vừa nhập tên đấy xong, thì view source sẽ có đoạn onblur='tên hàm javascript', xóa đoạn đấy đi, lưu vào 1 file html khác, rồi chạy file đó lên. Thế là ko còn kiểm tra được cái tên user đó đã tồn tại chưa smilie Em nghĩ thế, ko biết có đúng ko nữa :">
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 30/03/2009 23:55:55 (+0700) | #4 | 175339
ngonchan
Elite Member

[Minus]    0    [Plus]
Joined: 23/02/2004 12:03:51
Messages: 136
Offline
[Profile] [PM] [WWW] [Yahoo!]

proA.Vito wrote:

ngonchan wrote:
1. Bạn có thể thử qua JQuery framework, dễ học, dễ sử dụng.
2. vd cho bạn một chức năng: kiểm tra tên đăng nhập khi người dùng đăng kí thành viên vào trang web, sử dụng Ajax để xem tên người dùng vừa nhập vào đã tồn tại hay chưa.
3. Giải quyết 2 cái trên đi đã smilie 


Em tưởng là dùng ajax thì là dùng các sự kiện trên javascript, vị dụ sự kiện onblur ở ô text vừa nhập tên đấy xong, thì view source sẽ có đoạn onblur='tên hàm javascript', xóa đoạn đấy đi, lưu vào 1 file html khác, rồi chạy file đó lên. Thế là ko còn kiểm tra được cái tên user đó đã tồn tại chưa smilie Em nghĩ thế, ko biết có đúng ko nữa :">  


Chứ mình có nói Ajax không dùng các sự kiện trên Javascript đâu hè smilie Bản thân cái tên Ajax cũng nói lên điều này (truy xuất bất đồng bộ giữa Javascript và XML)
Về đoạn màu đỏ: đây là một trong những lỗi bảo mật của Ajax mà bạn đã hỏi, do đó, để tránh điều này thì bạn phải kết hợp cả client side và server side để tránh tình trạng bị tùy biến và điều khiển trên client side.
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 31/03/2009 00:42:29 (+0700) | #5 | 175349
TienVe
Member

[Minus]    0    [Plus]
Joined: 17/07/2007 16:20:16
Messages: 24
Offline
[Profile] [PM]
Bạn tìm các Video RoadShow của bọn Microsoft về Ajax Tech ra ngồi mà xem, học mà chơi, chơi mà học, smilie
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 31/03/2009 06:44:15 (+0700) | #6 | 175405
[Avatar]
proA.Vito
Member

[Minus]    0    [Plus]
Joined: 21/01/2009 00:46:01
Messages: 49
Location: Cõi hư vô
Offline
[Profile] [PM] [Email]

ngonchan wrote:

Chứ mình có nói Ajax không dùng các sự kiện trên Javascript đâu hè smilie Bản thân cái tên Ajax cũng nói lên điều này (truy xuất bất đồng bộ giữa Javascript và XML)
Về đoạn màu đỏ: đây là một trong những lỗi bảo mật của Ajax mà bạn đã hỏi, do đó, để tránh điều này thì bạn phải kết hợp cả client side và server side để tránh tình trạng bị tùy biến và điều khiển trên client side. 


Thì em có nói là anh bảo ajax không dùng javascript đâu, câu đó chỉ là tiền đề cho câu sau của em thôi mà :"> Anh có nói rõ việc kết hợp server script và client script hơn được ko ạ
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 31/03/2009 09:19:01 (+0700) | #7 | 175417
[Avatar]
learn2hack
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 16:32:37
Messages: 825
Offline
[Profile] [PM] [WWW]
Khi dùng js (clien script) để gửi thông tin lên web server, ở đó bạn sẽ chạy 1 script nào đó như PHP (server script) dùng để tiếp nhận thông tin đó, xử lí nó và trả lại kết quả cho client script trên. Để tránh lỗi bảo mật thì khi server script khi nhận được thông tin cần phải kiểm tra rõ ràng trước khi xử lí, để tránh các lỗi phát sinh, VD như request ko hợp lệ, request chứa các mã nguy hiểm, ...

VD như script về register ngonchan nói ở trên, có thể minh họa tạm thế này:
người dùng đăng kí, điền vào username => js được kích hoạt kèm theo sự kiện nào đó (onblur chẳng hạn) => gửi request (chứa username) đến server => server client, giá sử là PHP sẽ nhận username đó => PHP query database xem username tồn tại ko => PHP trả lại kết quả cho client => JS bắt được kết quả này và hiển thị cho người dùng.

Ajax cũng có 1 quy ước nhằm tránh lỗi bảo mật là không cho phép cross-domain, nếu file js của bạn ko nằm cùng 1 domain với serverscript thì ko thể gửi request đến được.

PS: gọi là server-side và client-side chắc hợp lí hơn nhỉ smilie
Blog: http://hontap.blogspot.com
Tải phần mềm miễn phí: http://www.taiphanmem.org
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 31/03/2009 09:27:25 (+0700) | #8 | 175419
[Avatar]
proA.Vito
Member

[Minus]    0    [Plus]
Joined: 21/01/2009 00:46:01
Messages: 49
Location: Cõi hư vô
Offline
[Profile] [PM] [Email]

learn2hack wrote:
Khi dùng js (clien script) để gửi thông tin lên web server, ở đó bạn sẽ chạy 1 script nào đó như PHP (server script) dùng để tiếp nhận thông tin đó, xử lí nó và trả lại kết quả cho client script trên. Để tránh lỗi bảo mật thì khi server script khi nhận được thông tin cần phải kiểm tra rõ ràng trước khi xử lí, để tránh các lỗi phát sinh, VD như request ko hợp lệ, request chứa các mã nguy hiểm, ...

VD như script về register ngonchan nói ở trên, có thể minh họa tạm thế này:
người dùng đăng kí, điền vào username => js được kích hoạt kèm theo sự kiện nào đó (onblur chẳng hạn) => gửi request (chứa username) đến server => server client, giá sử là PHP sẽ nhận username đó => PHP query database xem username tồn tại ko => PHP trả lại kết quả cho client => JS bắt được kết quả này và hiển thị cho người dùng.

Ajax cũng có 1 quy ước nhằm tránh lỗi bảo mật là không cho phép cross-domain, nếu file js của bạn ko nằm cùng 1 domain với serverscript thì ko thể gửi request đến được.

PS: gọi là server-side và client-side chắc hợp lí hơn nhỉ smilie 


Cảm ơn ý kiến của anh :X ... Nhưng vấn đề em đang thắc mắc là khi mình thì muốn check sự tồn tại của thằng user đó, nhưng do lỗi hổng bảo mật mà em vừa nói, thì công việc check đó ko thực hiện được... Đầu tiên phải lo đến việc có thực hiện được việc check hay không đã rồi mới dám tính nó check thế nào chứ anh hi` hi`.
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 31/03/2009 12:04:45 (+0700) | #9 | 175437
ngonchan
Elite Member

[Minus]    0    [Plus]
Joined: 23/02/2004 12:03:51
Messages: 136
Offline
[Profile] [PM] [WWW] [Yahoo!]

proA.Vito wrote:

Cảm ơn ý kiến của anh :X ... Nhưng vấn đề em đang thắc mắc là khi mình thì muốn check sự tồn tại của thằng user đó, nhưng do lỗi hổng bảo mật mà em vừa nói, thì công việc check đó ko thực hiện được... Đầu tiên phải lo đến việc có thực hiện được việc check hay không đã rồi mới dám tính nó check thế nào chứ anh hi` hi`.  


À à, có cách này, bạn xem thử có hợp lý không nhé smilie
1.Trong trang reg nick, mặc định bạn sẽ cho disable nút submit (hoặc disable sự kiện submit của form).
2.Khi sau khi dùng Ajax để check cái username đó, nếu và chỉ nếu server side trả về status của username là available thì cũng đồng thời trả về một biến, mình dựa vào giá trị của biến này để enable sự kiện submit form kia. Điều này sẽ tránh được trường hợp như bạn nói, không kiểm tra nick thì sẽ không có giá trị trả về để enable sự kiện submit.
Hy vọng là mình viết không quá khó hiểu smilie
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 31/03/2009 12:32:25 (+0700) | #10 | 175443
[Avatar]
proA.Vito
Member

[Minus]    0    [Plus]
Joined: 21/01/2009 00:46:01
Messages: 49
Location: Cõi hư vô
Offline
[Profile] [PM] [Email]

ngonchan wrote:

proA.Vito wrote:

Cảm ơn ý kiến của anh :X ... Nhưng vấn đề em đang thắc mắc là khi mình thì muốn check sự tồn tại của thằng user đó, nhưng do lỗi hổng bảo mật mà em vừa nói, thì công việc check đó ko thực hiện được... Đầu tiên phải lo đến việc có thực hiện được việc check hay không đã rồi mới dám tính nó check thế nào chứ anh hi` hi`.  


À à, có cách này, bạn xem thử có hợp lý không nhé smilie
1.Trong trang reg nick, mặc định bạn sẽ cho disable nút submit (hoặc disable sự kiện submit của form).
2.Khi sau khi dùng Ajax để check cái username đó, nếu và chỉ nếu server side trả về status của username là available thì cũng đồng thời trả về một biến, mình dựa vào giá trị của biến này để enable sự kiện submit form kia. Điều này sẽ tránh được trường hợp như bạn nói, không kiểm tra nick thì sẽ không có giá trị trả về để enable sự kiện submit.
Hy vọng là mình viết không quá khó hiểu smilie  


Oh` ý tưởng của bạn khá hay... Để mình thử làm xem. Cảm ơn bạn nhé!!! Thế ngoài việc dùng để check form đăng ký ra, ajax còn có thể làm gì nữa nhỉ :"> Nó có nên dùng để làm các công việc như insert user vào db, hay là xóa thông tin gì trong db ko? smilie Hay chỉ nên dùng để truy xuất và hiện thị dữ liệu thôi smilie
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 31/03/2009 12:42:44 (+0700) | #11 | 175447
ngonchan
Elite Member

[Minus]    0    [Plus]
Joined: 23/02/2004 12:03:51
Messages: 136
Offline
[Profile] [PM] [WWW] [Yahoo!]

proA.Vito wrote:

Oh` ý tưởng của bạn khá hay... Để mình thử làm xem. Cảm ơn bạn nhé!!! Thế ngoài việc dùng để check form đăng ký ra, ajax còn có thể làm gì nữa nhỉ :"> Nó có nên dùng để làm các công việc như insert user vào db, hay là xóa thông tin gì trong db ko? smilie Hay chỉ nên dùng để truy xuất và hiện thị dữ liệu thôi smilie 

Có nên dùng vào mục đích nào đó hay không thì phải phụ thuộc vào các yếu tố:
1. Có dễ sử dụng không? Có gây rắc rối gì cho người dùng không?
2. Có đảm bảo sẽ kiểm soát được các lỗi có thể xảy ra không
và nhiều yếu tố nữa chưa nghĩ ra smilie
Nếu trả lời xong được các câu hỏi đó thì bạn sẽ biết có nên hay không smilie
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 31/03/2009 12:49:46 (+0700) | #12 | 175448
[Avatar]
proA.Vito
Member

[Minus]    0    [Plus]
Joined: 21/01/2009 00:46:01
Messages: 49
Location: Cõi hư vô
Offline
[Profile] [PM] [Email]

ngonchan wrote:

proA.Vito wrote:

Oh` ý tưởng của bạn khá hay... Để mình thử làm xem. Cảm ơn bạn nhé!!! Thế ngoài việc dùng để check form đăng ký ra, ajax còn có thể làm gì nữa nhỉ :"> Nó có nên dùng để làm các công việc như insert user vào db, hay là xóa thông tin gì trong db ko? smilie Hay chỉ nên dùng để truy xuất và hiện thị dữ liệu thôi smilie 

Có nên dùng vào mục đích nào đó hay không thì phải phụ thuộc vào các yếu tố:
1. Có dễ sử dụng không? Có gây rắc rối gì cho người dùng không?
2. Có đảm bảo sẽ kiểm soát được các lỗi có thể xảy ra không
và nhiều yếu tố nữa chưa nghĩ ra smilie
Nếu trả lời xong được các câu hỏi đó thì bạn sẽ biết có nên hay không smilie  


Đấy đấy... Đúng rồi đấy... Vì mình chưa trả lời được 2 câu này nên mình mới phải post bài hỏi mọi người. Đọc sách chỉ thấy nó nói ajax có thể làm được cái này cái nọ mà chẳng nói đến lỗ hổng bảo mật của nó ra sao, ảnh hưởng thế nào tới người dùng smilie Nhưng theo cách hiểu của tớ (còn đang non kém) là không nên làm những công việc như thêm, sửa, xóa db => sợ bị hack lắm smilie Dùng câu lệnh select thôi. Nhưng nghĩ lại thấy nếu nó dùng sql injection, thêm dấu -- vào đằng sau, rồi chèn thêm câu lệnh delete nữa thì chít smilie( (mặc dù có thể validate input được cái này, nhưng chắc vẫn có cách phá được cái validate đấy :">, nếu không thì cái thằng sql injection không nổi tiếng như thế smilie) )
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 31/03/2009 14:01:54 (+0700) | #13 | 175465
ngonchan
Elite Member

[Minus]    0    [Plus]
Joined: 23/02/2004 12:03:51
Messages: 136
Offline
[Profile] [PM] [WWW] [Yahoo!]

proA.Vito wrote:

Đấy đấy... Đúng rồi đấy... Vì mình chưa trả lời được 2 câu này nên mình mới phải post bài hỏi mọi người. Đọc sách chỉ thấy nó nói ajax có thể làm được cái này cái nọ mà chẳng nói đến lỗ hổng bảo mật của nó ra sao, ảnh hưởng thế nào tới người dùng smilie Nhưng theo cách hiểu của tớ (còn đang non kém) là không nên làm những công việc như thêm, sửa, xóa db => sợ bị hack lắm smilie Dùng câu lệnh select thôi. Nhưng nghĩ lại thấy nếu nó dùng sql injection, thêm dấu -- vào đằng sau, rồi chèn thêm câu lệnh delete nữa thì chít smilie( (mặc dù có thể validate input được cái này, nhưng chắc vẫn có cách phá được cái validate đấy :">, nếu không thì cái thằng sql injection không nổi tiếng như thế smilie) ) 


Cái 1: đặt mình vào trường hợp của người dùng (chứ không phải của một coder) để biết người dùng cần gì smilie
Cái 2: Thêm, xóa hay sửa thì phải dựa vào khóa chính của trường muốn sửa (id chẳng hạn) --> kiểm tra cái này cộng với kiểm tra (hay kiểm soát) dữ liệu được truyền từ client side smilie
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 31/03/2009 20:34:07 (+0700) | #14 | 175481
[Avatar]
proA.Vito
Member

[Minus]    0    [Plus]
Joined: 21/01/2009 00:46:01
Messages: 49
Location: Cõi hư vô
Offline
[Profile] [PM] [Email]

ngonchan wrote:

proA.Vito wrote:

Đấy đấy... Đúng rồi đấy... Vì mình chưa trả lời được 2 câu này nên mình mới phải post bài hỏi mọi người. Đọc sách chỉ thấy nó nói ajax có thể làm được cái này cái nọ mà chẳng nói đến lỗ hổng bảo mật của nó ra sao, ảnh hưởng thế nào tới người dùng smilie Nhưng theo cách hiểu của tớ (còn đang non kém) là không nên làm những công việc như thêm, sửa, xóa db => sợ bị hack lắm smilie Dùng câu lệnh select thôi. Nhưng nghĩ lại thấy nếu nó dùng sql injection, thêm dấu -- vào đằng sau, rồi chèn thêm câu lệnh delete nữa thì chít smilie( (mặc dù có thể validate input được cái này, nhưng chắc vẫn có cách phá được cái validate đấy :">, nếu không thì cái thằng sql injection không nổi tiếng như thế smilie) ) 


Cái 1: đặt mình vào trường hợp của người dùng (chứ không phải của một coder) để biết người dùng cần gì smilie
Cái 2: Thêm, xóa hay sửa thì phải dựa vào khóa chính của trường muốn sửa (id chẳng hạn) --> kiểm tra cái này cộng với kiểm tra (hay kiểm soát) dữ liệu được truyền từ client side smilie  


@Cái 1: người dùng thích cái gì nhanh và đơn giản, dễ dùng :"> Thì nếu bình thường mình nghĩ để ứng dụng AJAX ở càng nhiều chức năng càng tốt. Nhưng mình nghĩ là trong câu hỏi của mình, thì nên đặt ở vị trí của 1 hacker, xem nó có thể phá hoại mạnh nhất ở chức năng nào để tránh những nguy cơ đó đi smilie

@Cái 2: Thỉ rõ ràng rồi :"> nhưng vấn đề ở đây là phân biệt thế nào khi dữ liệu truyền vào là ở trong câu lệnh select hay delete :">
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 31/03/2009 22:13:34 (+0700) | #15 | 175489
ngonchan
Elite Member

[Minus]    0    [Plus]
Joined: 23/02/2004 12:03:51
Messages: 136
Offline
[Profile] [PM] [WWW] [Yahoo!]

proA.Vito wrote:

@Cái 1: người dùng thích cái gì nhanh và đơn giản, dễ dùng :"> Thì nếu bình thường mình nghĩ để ứng dụng AJAX ở càng nhiều chức năng càng tốt. Nhưng mình nghĩ là trong câu hỏi của mình, thì nên đặt ở vị trí của 1 hacker, xem nó có thể phá hoại mạnh nhất ở chức năng nào để tránh những nguy cơ đó đi smilie

@Cái 2: Thỉ rõ ràng rồi :"> nhưng vấn đề ở đây là phân biệt thế nào khi dữ liệu truyền vào là ở trong câu lệnh select hay delete :"> 

1. Đang nói khía cạnh người dùng mà, hack hiếc gì ở đây smilie không phải cứ xài càng nhiều Ajax vào càng nhiều chức năng là càng tốt đâu smilie
2. Muốn delete thì gọi đến function delete, muốn select thì gọi đến function select chứ sao nữa smilie mình phải xác định lúc nào del hay lúc nào select để truyền vào url cho đúng, chứ không lẽ bắt nó phải tự hiểu hay sao nà?
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 31/03/2009 23:10:29 (+0700) | #16 | 175498
[Avatar]
proA.Vito
Member

[Minus]    0    [Plus]
Joined: 21/01/2009 00:46:01
Messages: 49
Location: Cõi hư vô
Offline
[Profile] [PM] [Email]

ngonchan wrote:

proA.Vito wrote:

@Cái 1: người dùng thích cái gì nhanh và đơn giản, dễ dùng :"> Thì nếu bình thường mình nghĩ để ứng dụng AJAX ở càng nhiều chức năng càng tốt. Nhưng mình nghĩ là trong câu hỏi của mình, thì nên đặt ở vị trí của 1 hacker, xem nó có thể phá hoại mạnh nhất ở chức năng nào để tránh những nguy cơ đó đi smilie

@Cái 2: Thỉ rõ ràng rồi :"> nhưng vấn đề ở đây là phân biệt thế nào khi dữ liệu truyền vào là ở trong câu lệnh select hay delete :"> 

1. Đang nói khía cạnh người dùng mà, hack hiếc gì ở đây smilie không phải cứ xài càng nhiều Ajax vào càng nhiều chức năng là càng tốt đâu smilie
2. Muốn delete thì gọi đến function delete, muốn select thì gọi đến function select chứ sao nữa smilie mình phải xác định lúc nào del hay lúc nào select để truyền vào url cho đúng, chứ không lẽ bắt nó phải tự hiểu hay sao nà? 


Huhu hình như bạn không hiểu ý mình smilie

1. Thôi nói về cả 2 khía cạnh người dùng và hacker đi :">
- Mình muốn biết nếu giả sử mình sử dụng ajax để thêm 1 user vào db thì có thể gặp vấn đề bảo mật gì không?
- Tương tự với trường hợp nếu mình muốn xóa 1 message của user trong db bằng ajax
(cái này mình đọc 1 số sách không thấy đề cập)
2. Có phải lúc nào hacker cũng cho mình gọi hàm mình muốn gọi đâu :-"
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 01/04/2009 04:22:41 (+0700) | #17 | 175528
ngonchan
Elite Member

[Minus]    0    [Plus]
Joined: 23/02/2004 12:03:51
Messages: 136
Offline
[Profile] [PM] [WWW] [Yahoo!]

proA.Vito wrote:

- Mình muốn biết nếu giả sử mình sử dụng ajax để thêm 1 user vào db thì có thể gặp vấn đề bảo mật gì không?
- Tương tự với trường hợp nếu mình muốn xóa 1 message của user trong db bằng ajax
 

Có. Chỉ nói 1 vài cái đơn giản thôi là có những thằng không có quyền xóa hay add nhưng vẫn muốn chen vào, add thêm hoặc xóa bớt db, hoặc là có những thằng được quyền chỉnh sửa db thì lại đưa những dữ liệu tầm phào vào thay vì đưa những dữ liệu đúng để có thể chỉnh sửa trong db (cái này thì ajax hay không ajax đều có thể gặp) smilie
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 01/04/2009 07:05:09 (+0700) | #18 | 175555
[Avatar]
learn2hack
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 16:32:37
Messages: 825
Offline
[Profile] [PM] [WWW]
(Nhờ mod xóa giùm, bài bị gửi trong lúc mạng chập chờn nên bị trùng lặp) smilie
Blog: http://hontap.blogspot.com
Tải phần mềm miễn phí: http://www.taiphanmem.org
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 01/04/2009 07:11:38 (+0700) | #19 | 175556
[Avatar]
learn2hack
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 16:32:37
Messages: 825
Offline
[Profile] [PM] [WWW]
Mình góp ý 1 chút, hình như proA.Vito chưa thực sự thử với ajax thì phải. Nên chú ý 1 chút là nếu đứng về phía client thì ajax thực ra chỉ là Javascript. Vì thế, hacker ko thể trực tiếp "hack" vào database trên server được.

Cái mà bạn nói:
view source sẽ có đoạn onblur='tên hàm javascript', xóa đoạn đấy đi, lưu vào 1 file html khác, rồi chạy file đó lên. Thế là ko còn kiểm tra được cái tên user đó đã tồn tại chưa 

thì đối với cái nhìn từ phía server, các thông tin được submit lên (cho dù bạn dùng cách nào đi nữa, ajax hay js thông thường, hoặc chỉ là HTML) thì nó sẽ chứa tên của user đang cần check. Và vì thế, vấn đề kiểm tra được hay ko, nó ko hề phụ thuộc vào phía client, mà là do phía server đảm nhiệm.

Điều này
giả sử mình sử dụng ajax để thêm 1 user vào db 

Như đã nói ở trên là client ko thể thêm user vào db được nếu phía server ko cho phép. Vì thế, vấn đề của bạn là chạy các script 1 cách cẩn thận ở phía server, kiểm tra input rõ ràng, ... chứ ko phải đề phòng "hacker lo mấy vụ chỉnh sửa html, chèn js ở phía client".

Tóm lại, là bạn thử viết 1 ứng dụng ajax cho client chèn user vào db xem sao, bạn sẽ thấy cái nào là mấu chốt trong việc chèn user, và ajax có vai trò gì trong quá trình đó. Nếu ko thực sự làm, mình e là các thắc mắc của bạn sẽ xa vời mãi.
Blog: http://hontap.blogspot.com
Tải phần mềm miễn phí: http://www.taiphanmem.org
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 01/04/2009 11:52:54 (+0700) | #20 | 175589
[Avatar]
proA.Vito
Member

[Minus]    0    [Plus]
Joined: 21/01/2009 00:46:01
Messages: 49
Location: Cõi hư vô
Offline
[Profile] [PM] [Email]

learn2hack wrote:
Mình góp ý 1 chút, hình như proA.Vito chưa thực sự thử với ajax thì phải. Nên chú ý 1 chút là nếu đứng về phía client thì ajax thực ra chỉ là Javascript. Vì thế, hacker ko thể trực tiếp "hack" vào database trên server được.

Cái mà bạn nói:
view source sẽ có đoạn onblur='tên hàm javascript', xóa đoạn đấy đi, lưu vào 1 file html khác, rồi chạy file đó lên. Thế là ko còn kiểm tra được cái tên user đó đã tồn tại chưa 

thì đối với cái nhìn từ phía server, các thông tin được submit lên (cho dù bạn dùng cách nào đi nữa, ajax hay js thông thường, hoặc chỉ là HTML) thì nó sẽ chứa tên của user đang cần check. Và vì thế, vấn đề kiểm tra được hay ko, nó ko hề phụ thuộc vào phía client, mà là do phía server đảm nhiệm.

Điều này
giả sử mình sử dụng ajax để thêm 1 user vào db 

Như đã nói ở trên là client ko thể thêm user vào db được nếu phía server ko cho phép. Vì thế, vấn đề của bạn là chạy các script 1 cách cẩn thận ở phía server, kiểm tra input rõ ràng, ... chứ ko phải đề phòng "hacker lo mấy vụ chỉnh sửa html, chèn js ở phía client".

Tóm lại, là bạn thử viết 1 ứng dụng ajax cho client chèn user vào db xem sao, bạn sẽ thấy cái nào là mấu chốt trong việc chèn user, và ajax có vai trò gì trong quá trình đó. Nếu ko thực sự làm, mình e là các thắc mắc của bạn sẽ xa vời mãi. 


Uầy anh nói đúng vật!!! :"> Thực sự là em chưa đưa ajax vào 1 dự án thực sự nào cả (mới chỉ làm một số ví dụ cơ bản để nắm cách sử dụng AJAX thôi), nên chưa thực sự hiểu lắm ứng dụng của ajax trong 1 dự án thực tế. Hiện tại mấy hôm nữa thì em cũng phải làm 1 dự án có sử dụng AJAX, nên em post bài trước lên đây để tìm hiểu trước về AJAX, lúc áp dụng vào công việc đỡ bỡ ngỡ hi` hi`!!!

Và em rất cảm ơn những lời góp ý của anh. Em sẽ suy nghĩ về vấn đề này và thực hành thử xem. smilie

[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 08/04/2009 00:48:21 (+0700) | #21 | 176102
[Avatar]
blackboy212
Member

[Minus]    0    [Plus]
Joined: 30/12/2006 19:36:55
Messages: 17
Offline
[Profile] [PM]

proA.Vito wrote:
Em tưởng là dùng ajax thì là dùng các sự kiện trên javascript, vị dụ sự kiện onblur ở ô text vừa nhập tên đấy xong, thì view source sẽ có đoạn onblur='tên hàm javascript', xóa đoạn đấy đi, lưu vào 1 file html khác, rồi chạy file đó lên. Thế là ko còn kiểm tra được cái tên user đó đã tồn tại chưa smilie Em nghĩ thế, ko biết có đúng ko nữa :">  


Bạn hiểu chưa đầy đủ về khái niệm Ajax rồi xem lại nhé!
--> khái niệm ajax: có thể search bằng google.
--> nếu bạn tìm hiều ajax trong asp.net thì có thể tìm xem sách này: "Introducing Microsoft ASP.NET AJAX".
chúc may mắn!

nhân tiên tôi cũng khá qua tâm đến khía canh bảo mật của website ứng dụng kỹ thuật ajax muốn đem ra thảo luận cùng các bạn.

1. trường hợp nếu tôi phát triển một website như sau:
--> phía client-site sử dụng js để gởi request lên server với kiểu tham số url vd: yoursite.com?id=123
server-site sẻ tiếp id yêu cầu xử lý và trả về nội xung xml tưng ứng. mọi yêu cầu đến url trên đều nhận được
kết quả trả về là dữ liệu dưới dạng xml.
?--> vấn đề: liệu một website viết code như vậy có thể bị ddos hay một kiểu tấn công nguy hiểm nào hay không?
!--> riêng mình thì mình nghĩ: trong trường hợp này ta có thể viết một đoạn mã js lặp vô tận để request đến url
được nói ở trên, giả thiết rằng các diễn đàn lớn không lọc các thẻ script đồng nghĩa với việc ta có thể pass
đoạn javascript đó vào bài viết trên diễn đàn. nếu lượng truy cập đến chủ đề trong diễn đàn đó nhiều thì lượng
request đến yoursite.com?id=123 cũng được tăng lên, nên mình nghĩ rằng các site kiểu này đang mở toang
cánh cổng cho ddos.
với những hiểu biết hạn chế của mình về bào mật cho nên không khẳng định được site này có thể bị dính "cuồng phong " hay không smilie ? các bạn góp ý nhé.
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 08/04/2009 08:22:55 (+0700) | #22 | 176176
[Avatar]
learn2hack
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 16:32:37
Messages: 825
Offline
[Profile] [PM] [WWW]
Diễn đàn mà cho phép dùng thẻ script thì chắc là nó xứng đáng nhận giá đó smilie
Blog: http://hontap.blogspot.com
Tải phần mềm miễn phí: http://www.taiphanmem.org
[Up] [Print Copy]
  [Question]   Re: Em đang có một vài thắc mắc về AJAX mong mọi người giúp đỡ :X 08/04/2009 09:19:16 (+0700) | #23 | 176180
[Avatar]
blackboy212
Member

[Minus]    0    [Plus]
Joined: 30/12/2006 19:36:55
Messages: 17
Offline
[Profile] [PM]
Ở đây mình chỉ nói là giả thiết thôi bạn smilie !
Mình chỉ muốn biết thật sự nếu trong điêu kiện của giả thiết thì có phải "yoursite.com" đang có nguy cơ hứng "cuồng phong" cao bằng mã javascript hay không mà thôi.
Rất mong nhận được sự đánh giá của các sư huynh có kinh nghiệm smilie
[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|