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 việc định hướng Lộ trình nghiên cứu mảng Web App Security  XML
  [Guidance]   Lộ trình nghiên cứu mảng Web App Security 15/10/2010 10:11:10 (+0700) | #1 | 222887
sharigan_taka
Member

[Minus]    0    [Plus]
Joined: 14/10/2010 09:32:13
Messages: 1
Offline
[Profile] [PM]
Chào HVAs !

Mình đang bắt đầu nghiên cứu về mảng Web App Security. Với những bạn đi trước, đã có kinh nghiệm trong mảng này, mình muốn hỏi là theo ý kiến (chủ quan) của các bạn, lộ trình và quy trình nghiên cứu trong mảng này nên là như thế nào để có thể nắm vững kiến thức và tiến xa trong mảng (Web App Security) này ?

Một vấn đề nữa là nguồn tài liệu học tập và tham khảo về mảng này khá nhiều nguồn, các bạn có thể chọn giúp mình một số tài liệu cần thiết và bổ ích, phục vụ cho công việc nghiên cứu và tìm hiểu mảng này được chứ ?

Welcome all your replies !

[Up] [Print Copy]
  [Guidance]   Lộ trình nghiên cứu mảng Web App Security 16/10/2010 07:14:48 (+0700) | #2 | 222948
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

sharigan_taka wrote:
Chào HVAs !

Mình đang bắt đầu nghiên cứu về mảng Web App Security. Với những bạn đi trước, đã có kinh nghiệm trong mảng này, mình muốn hỏi là theo ý kiến (chủ quan) của các bạn, lộ trình và quy trình nghiên cứu trong mảng này nên là như thế nào để có thể nắm vững kiến thức và tiến xa trong mảng (Web App Security) này ?

Một vấn đề nữa là nguồn tài liệu học tập và tham khảo về mảng này khá nhiều nguồn, các bạn có thể chọn giúp mình một số tài liệu cần thiết và bổ ích, phục vụ cho công việc nghiên cứu và tìm hiểu mảng này được chứ ?

Welcome all your replies !

 


Khi nói đến Web App Security, mình nói đến 2 phần cốt lõi của nó: cơ sở hạ tầng cho web app và thiết kế + mã nguồn của web app. Cả hai phần cốt lõi này đều quan trọng như nhau bởi vì cho dù thiết kế + mã nguồn của web app có vững mà cơ sở hạ tầng kém thì cũng không còn bảo mật nữa. Ngược lại, dù cơ sở hạ tầng có vững nhưng thiết kế và mã nguồn quá kém thì tính bảo mật cũng bị sụp đổ.

Xét đến cơ sở hạ tầng, cần xét đến các thiết bị, mô hình mạng và quy chế bảo vệ (luật lệ). Những thiết bị và mô hình được hình thành phải thật sự đáp ứng được nhu cầu cụ thể và phải bảo đảm tính khoa học của chúng. Đây là một mảng rất lớn bao gồm kiến thức mạng và hệ điều hành cũng như kiến thức sử dụng và tối ưu các thiết bị được chọn.

Xét đến thiết kế và mã nguồn của web app, cần xét đến ba khía cạnh tối quan trọng: hiệu suất, bền bỉ và bảo mật trong suốt quá trình thiết kế và hình thành code. Không chấp nhận thói quen "chạy được là tốt" mà phải đi đến chỗ "chạy được" và chạy bền, chạy hiệu suất, chạy bảo mật. Tính bảo mật của web app được duy trì từ tiêu chí: không thừa, không thiếu và không tạm bợ. Mỗi công nghệ được chọn để làm nền tảng kiến tạo web app cần được nắm vững (điểm mạnh, yếu và hạn chế) để sử dụng một cách linh hoạt.

Nguồn tài liệu thì vô tận. Trên HVA này, trong phần "E-book" và "Phòng đọc" có các tài liệu rất bổ ích. Ngoài ra, nên bắt đầu từ trang OWASP http://www.owasp.org/index.php/Main_Page . Trang này cung cấp rất nhiều thông tin bổ ích mặc dù có những phần không thật sự đào sâu nhưng cũng là nguồn tham khảo quý giá để tiếp tục nghiên cứu.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Guidance]   Lộ trình nghiên cứu mảng Web App Security 16/10/2010 12:11:05 (+0700) | #3 | 222959
[Avatar]
fir3t0ad
Member

[Minus]    0    [Plus]
Joined: 11/10/2010 22:36:00
Messages: 19
Offline
[Profile] [PM]
@conmale: em có một thắc mắc chi tiết nhỏ hơn mong anh giải đáp giúp, đó là về mã nguồn của Web App. Theo anh thì ngoài yếu tố con người - lập trình viên,thiết kế của sản phẩm, thì ngôn ngữ lập trình có ảnh hưởng đến hiệu suất, sự bền bỉ và tính bảo mật của Web App đó không?

Ví dụ như trong trường hợp cụ thể là em dự định học PHP, tuy nhiên khi tham vấn ý kiến một ông bạn có kinh nghiệm hơn thì lại nhận được câu trả lời không nên học ngôn ngữ này. Theo lý lẽ của người này đưa ra là PHP không tồi nhưng do ngôn ngữ này quá thoải mái, quá nhiều lựa chọn nên dễ dẫn đến sự tự do đến cẩu thả của lập trình viên.

Ông bạn này tiếp tục đưa ra sự khẳng định theo rất nhiều bài viết thì tỉ lệ rất lớn các sản phẩm được code bằng PHP có mã rất lung tung. Theo câu trích dẫn mà ông bạn em đưa ra là "Spaghetti SQL wrapped in spaghetti PHP wrapped in spaghetti HTML".

Điều này đúng sự thực không hả anh?

Do ông ý đã biết ở trường em được dạy C/C++ nên khuyên có thể học Java hoặc Python để hiểu rõ thêm về những gì được dạy ở hai ngôn ngữ đã học đồng thời cũng là nền tảng phát triển web tốt hơn.

Theo anh điều này có hợp lý?
[Up] [Print Copy]
  [Guidance]   Lộ trình nghiên cứu mảng Web App Security 16/10/2010 13:53:35 (+0700) | #4 | 222964
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

fir3t0ad wrote:
@conmale: em có một thắc mắc chi tiết nhỏ hơn mong anh giải đáp giúp, đó là về mã nguồn của Web App. Theo anh thì ngoài yếu tố con người - lập trình viên,thiết kế của sản phẩm, thì ngôn ngữ lập trình có ảnh hưởng đến hiệu suất, sự bền bỉ và tính bảo mật của Web App đó không?

Ví dụ như trong trường hợp cụ thể là em dự định học PHP, tuy nhiên khi tham vấn ý kiến một ông bạn có kinh nghiệm hơn thì lại nhận được câu trả lời không nên học ngôn ngữ này. Theo lý lẽ của người này đưa ra là PHP không tồi nhưng do ngôn ngữ này quá thoải mái, quá nhiều lựa chọn nên dễ dẫn đến sự tự do đến cẩu thả của lập trình viên.

Ông bạn này tiếp tục đưa ra sự khẳng định theo rất nhiều bài viết thì tỉ lệ rất lớn các sản phẩm được code bằng PHP có mã rất lung tung. Theo câu trích dẫn mà ông bạn em đưa ra là "Spaghetti SQL wrapped in spaghetti PHP wrapped in spaghetti HTML".

Điều này đúng sự thực không hả anh?

Do ông ý đã biết ở trường em được dạy C/C++ nên khuyên có thể học Java hoặc Python để hiểu rõ thêm về những gì được dạy ở hai ngôn ngữ đã học đồng thời cũng là nền tảng phát triển web tốt hơn.

Theo anh điều này có hợp lý?
 


Hello fir3t0ad,

Tớ tránh không bị sa vô chỗ tranh cãi tính "mạnh yếu" của ngôn ngữ lập trình bởi vì những tranh cãi ở góc độ này hầu như lúc nào cũng bế tắc. Lý do rất đơn giản là bất cứ ai chọn lựa cho mình một ngôn ngữ sở trường thường bảo vệ quan điểm và thường không muốn chấp nhận mình đã có một chọn lựa sai (hoặc không thích hợp).

Xét ở góc độ tính năng của ngôn ngữ lập trình có ảnh hưởng thế nào đến tính bảo mật, hiệu suất và sự bền bỉ của ứng dụng thì cá nhân tớ nghĩ rằng: . Ngôn ngữ lập trình nói cho cùng là phương tiện để "xào nấu" dữ liệu và dữ liệu có thể là những primitives hoặc những objects (tuỳ ngôn ngữ và tuỳ mức độ implement). Bởi thế, phương tiện để "xào nấu" này càng linh hoạt, mạnh mẽ, chặt chẽ và khoa học thì kết quả "xào nấu" càng... ngon smilie. "Xào nấu" ở đây là một loạt xử lý và thao tác với dữ liệu nhập và dữ liệu xuất. Nếu "nhập" chứa rác thì "xuất" cũng khó có thể tránh rác nếu như không kiểm soát kỹ. Tệ hại hơn, nếu "nhập" không được kiểm soát thì có thể gây rối loạn cho quá trình "xào nấu" và dẫn đến những đổ vỡ liên quan trực tiếp và gián tiếp đến bảo mật.

Cụ thể hơn một tí, trên một web app cần một FORM để user đăng nhập chẳng hạn. Trên form ấy có 1 field là userID và một field là userName. Đối với bộ phận "xào nấu" bên trong, nó dự phỏng dữ liệu của field userId là một int và dữ liệu của field userName là một String. Nếu ngôn ngữ lập trình chặt chẽ, nó sẽ "xử" dữ liệu đi vào ngay từ đầu để bảo đảm int là int và String là String chớ không thể nhặp nhằng được. Đây là cốt lõi của tính bảo mật từ căn bản ngôn ngữ lập trình. Đi sâu vô bên trong, những FORM khác của web app có thể có hàng chục field và giá trị khác nhau. Quá trình "xào nấu" kia có thể biến những dữ liệu thành những "objects" của một object nào đó mà giá trị của chúng hoàn toàn hợp lệ trước khi đi đến nơi lưu trữ nào đó hoặc trước khi được xuất ra một nơi nào đó để sử dụng cho một việc nào khác. Đây chính là khía cạnh "integrity" của dữ liệu mà ngôn ngữ lập trình đóng vai trò quan trọng để bảo đảm tính chất này. Nếu ngôn ngữ lập trình không linh động, không đủ tính năng thì việc coding để bảo đảm tính hợp lệ hoặc tính trung thực của dữ liệu kia trở nên rối rắm, dẫn đến sự giảm thiểu hiệu suất và thậm chí, mở cửa cho những lỗ hổng bảo mật.

Có lắm những cuộc tranh cãi về khả năng của procedural programming hơn thua object oriented programming hoặc php hơn thua java những thứ gì.... Những tranh cãi này thường xoay quanh những tính năng và cú pháp của ngôn ngữ lập trình nhưng thật sự khi đào sâu xuống mức độ ngôn ngữ lập trình có khả năng giúp "xào nấu" dữ liệu thế nào thì lúc ấy mới thấy rõ những điểm lợi hại của từng ngôn ngữ lập trình. Tóm lại, ngôn ngữ lập trình có ảnh hưởng trực tiếp đến tính bền bỉ, tính hiệu suất và tính bảo mật của ứng dụng web.

Thân mến.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Guidance]   Lộ trình nghiên cứu mảng Web App Security 16/10/2010 17:35:22 (+0700) | #5 | 222977
[Avatar]
fir3t0ad
Member

[Minus]    0    [Plus]
Joined: 11/10/2010 22:36:00
Messages: 19
Offline
[Profile] [PM]
Sau khi đọc kỹ lại bài của mình và trả lời của anh thì đúng là 2 câu sau dễ dẫn đến chiến tranh không cần thiết nhất là sau khi đọc thêm chủ đề "PHP vs JSP", do em có thấy anh nhắc đến tranh cãi PHP hơn thua Java nên search thử xem thì thấy ngay HVA có cuộc tranh cãi nảy lửa này.

Và em cũng thấy được sự bế tắc trong đó. Xem hết 9 trang cũng hơi oải, 4-5 trang đầu còn hay hay về sau càng ngày càng nhiều người bảo thủ, rồi cuối cùng quay ra cổ vũ nhau smilie.

Tuy nhiên cũng nhờ bài trả lời của anh về "xào nấu" dữ liệu cùng với đọc thêm mô tả về các "bên liên quan" em cũng đã có được câu trả lời cho hai câu hỏi "vô duyên" của mình.

Em cảm ơn anh.



Hè, nhưng mà em vẫn có vài thắc mắc, mà xem ra anh không ngại làm bác sĩ "hoa súng" về kiến thức kỹ thuật nên em sẽ "lợi dụng" "hành" tiếp. Còn nếu anh conmale bận thì em cũng mong nhận được ý kiến về vấn đề này từ cả các anh (chị) khác.

Như anh nói ở bài trên thì mỗi ngôn ngữ, tuỳ theo đặc điểm của nó mà có đảm bào được tính "nguyên thuỷ" của dữ liệu qua quá trình nhập/xuất hay không.

Nghĩa là người lập trình viên khi làm việc với một ngôn ngữ cần phải hiểu thật sự rõ về nó cũng như phải tìm hiểu thêm một đến vài ngôn ngữ có khả năng thực hiện công việc trong lãnh vực liên quan mới có thể so sánh và nắm được điểm mạnh, yếu ngôn ngữ mà mình đang dùng trong việc đảm bảo tính "nguyên thuỷ" của dữ liệu . Từ đó mới có thể tính đến việc Security cho Web App của mình ở bên lập trình.

Như vậy công việc chỉ xét đến một nhánh thiết kế và mã nguồn của Web App cũng đã gần như vô tận cho việc học. Và thực tế điều này cũng đưa em đến một nhận xét là những tài liệu về vấn đề để bắt đầu cho tiến trình Security cho Web App như ở trên đến từ những tài liệu đơn giản nhất là làm quen với PHP hay Java. Rồi sau đó làm dần dần với nhu cầu phát sinh trong quá trình làm việc với ngôn ngữ này khi phát triển Web App sẽ tự tìm thấy những điều "mà mình cần".

Theo anh cái nhận xét này của em có đúng không?


Về nhánh cơ sở hạ tầng em không hiểu rõ lắm do ít tìm hiểu hơn. Tuy nhiên cũng theo trên và bài trả lời đầu tiên của anh cũng cho thấy đây là một mảng không hề nhỏ. Và em cũng nghĩ câu hỏi về tài liệu căn bản của bạn sharigan_taka vẫn sẽ là những tài liệu đơn giản nhất, ví dụ "cài Lamp xong thì làm sao cho nó chạy CGI", trước khi nghĩ đến cái xa hơn.



Điều này khiến em đưa đến kết luận cũng như phát sinh câu hỏi thứ hai. Theo em thì sẽ rất khó để một người có thể hiểu rõ cả hai nhánh này trong khoảng thời gian ngắn. Ví dụ như em là sinh viên đầu năm 3, trường em dạy 4 năm, vậy là trong 2 năm cuối này nội việc tìm hiểu về lập trình Web App cũng chưa chắc nên cơm cháo chứ chưa kể ôm đồm cả hai hướng.Nhưng em nghĩ là với những anh đã có kinh nghiệm vài chục năm có lẽ có thể làm được việc này.


Vây trong thực tế công việc các công ty thường ưa thích Security cho Web App trên cơ sở là team work mỗi người nghiên cứu chuyên sâu một hướng rồi kết hợp với nhau hay là những người có khả năng hiểu biết cả hai và làm tất cả?


Và khi ra đi làm (do em là sinh viên nên em cũng chỉ giả định theo hiểu biết của em) em nghĩ sẽ có nhiều việc ảnh hưởng đến sự nghiệp của em và lúc đó có lẽ công việc nó sẽ yêu cầu mình cần học tiếp những gì, ví dụ em đi làm thêm bồi bàn hồi hè sau đó được chuyển sang thu ngân thế là phải học cách điền sổ sách trong khi vốn lúc đầu dự định đi làm thêm là để có chút ít thu nhập và tăng khả năng giao tiếp.


Mình đang bắt đầu nghiên cứu về mảng Web App Security. Với những bạn đi trước, đã có kinh nghiệm trong mảng này, mình muốn hỏi là theo ý kiến (chủ quan) của các bạn, lộ trình và quy trình nghiên cứu trong mảng này nên là như thế nào để có thể nắm vững kiến thức và tiến xa trong mảng (Web App Security) này ?  



Như vậy phải chăng sẽ khó hoặc thậm chí gần như không thể có được một lộ trình và quy trình "chuẩn" cho tất thảy mọi người để có thể dẫn đến tiến xa trong mảng (Web App Security) này?




P/s: em theo dõi diễn đàn cũng được một thời gian và cũng biết khoảng độ tuổi của anh conmale ngoài đời thì em đáng phải gọi là chú. Cơ mà em vẫn thích gọi là anh hơn nên em vẫn sẽ chỉ gọi anh là anh smilie .
[Up] [Print Copy]
  [Guidance]   Lộ trình nghiên cứu mảng Web App Security 18/10/2010 05:39:44 (+0700) | #6 | 223050
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

fir3t0ad wrote:
Hè, nhưng mà em vẫn có vài thắc mắc, mà xem ra anh không ngại làm bác sĩ "hoa súng" về kiến thức kỹ thuật nên em sẽ "lợi dụng" "hành" tiếp. Còn nếu anh conmale bận thì em cũng mong nhận được ý kiến về vấn đề này từ cả các anh (chị) khác.

Như anh nói ở bài trên thì mỗi ngôn ngữ, tuỳ theo đặc điểm của nó mà có đảm bào được tính "nguyên thuỷ" của dữ liệu qua quá trình nhập/xuất hay không.

Nghĩa là người lập trình viên khi làm việc với một ngôn ngữ cần phải hiểu thật sự rõ về nó cũng như phải tìm hiểu thêm một đến vài ngôn ngữ có khả năng thực hiện công việc trong lãnh vực liên quan mới có thể so sánh và nắm được điểm mạnh, yếu ngôn ngữ mà mình đang dùng trong việc đảm bảo tính "nguyên thuỷ" của dữ liệu . Từ đó mới có thể tính đến việc Security cho Web App của mình ở bên lập trình.

Như vậy công việc chỉ xét đến một nhánh thiết kế và mã nguồn của Web App cũng đã gần như vô tận cho việc học. Và thực tế điều này cũng đưa em đến một nhận xét là những tài liệu về vấn đề để bắt đầu cho tiến trình Security cho Web App như ở trên đến từ những tài liệu đơn giản nhất là làm quen với PHP hay Java. Rồi sau đó làm dần dần với nhu cầu phát sinh trong quá trình làm việc với ngôn ngữ này khi phát triển Web App sẽ tự tìm thấy những điều "mà mình cần".

Theo anh cái nhận xét này của em có đúng không?

 

Đúng ở ý niệm nhưng có điểm chưa đúng trong ngôn ngữ. "Integrity" mà tớ đề cập ở đây là tính trung thực hoặc giá trị thật của dữ liệu chớ không hẵn là "tính nguyên thuỷ". Tính "nguyên thuỷ" nếu hiểu chính xác thì có nghĩa cái gì nhâp vô thì giữ nguyên cái đó không thay đổi. Tuy nhiên, "integrity" không chỉ dừng lại ở khái niệm này mà còn có ý nghĩa rộng hơn. "Integrity" có nghĩa là dữ liệu không bị ai đó biến từ A thành B một cách vô tình hay cố ý. A có thể được xài nấu và biến đổi định dạng (theo thuật ngữ chuyên môn gọi là serialization hoặc deserialization) nhưng trong quá trình biến đổi này, A không thể biến thành B được mà A chỉ là A ở một dạng khác. Nói một cách khác, giá trị của A vẫn không thay đổi bất kể nó thuộc định dạng nào.

Xét từ góc độ bảo mật, người làm công việc lập trình cần phải hiểu nhu cầu tiếp nhận dữ liệu, "xào nấu" dữ liệu và lưu trữ dữ liệu. Khi nắm được nhu cầu này ở mức tổng quan, mình sẽ đào sâu xuống để triển khai đúng tính chất bảo mật cho nó.

fir3t0ad wrote:

Về nhánh cơ sở hạ tầng em không hiểu rõ lắm do ít tìm hiểu hơn. Tuy nhiên cũng theo trên và bài trả lời đầu tiên của anh cũng cho thấy đây là một mảng không hề nhỏ. Và em cũng nghĩ câu hỏi về tài liệu căn bản của bạn sharigan_taka vẫn sẽ là những tài liệu đơn giản nhất, ví dụ "cài Lamp xong thì làm sao cho nó chạy CGI", trước khi nghĩ đến cái xa hơn.



Điều này khiến em đưa đến kết luận cũng như phát sinh câu hỏi thứ hai. Theo em thì sẽ rất khó để một người có thể hiểu rõ cả hai nhánh này trong khoảng thời gian ngắn. Ví dụ như em là sinh viên đầu năm 3, trường em dạy 4 năm, vậy là trong 2 năm cuối này nội việc tìm hiểu về lập trình Web App cũng chưa chắc nên cơm cháo chứ chưa kể ôm đồm cả hai hướng.Nhưng em nghĩ là với những anh đã có kinh nghiệm vài chục năm có lẽ có thể làm được việc này.


Vây trong thực tế công việc các công ty thường ưa thích Security cho Web App trên cơ sở là team work mỗi người nghiên cứu chuyên sâu một hướng rồi kết hợp với nhau hay là những người có khả năng hiểu biết cả hai và làm tất cả?
 

Trước đây, Security là một mảng mới mẻ và lắm công ty xem nhẹ mảng này bởi vì họ không hiểu và không chắc security giúp được gì cho họ. Càng về sau, Security không còn là một mảng mơ hồ nữa và càng không phải là một thứ gì đó cho việc "thích" hay "không thích" mà trở thành một phần quan trọng. Bởi vậy, những quy chế và cơ chế bảo mật dần dần được hình thành. Đối với lập trình viên, họ cần hiểu những khía cạnh bảo mật trong code của họ và người lãnh đạo (team leader hoặc technical specialist) cần phải theo sát và hướng dẫn họ (nếu như họ chưa nắm vững các đòi hỏi về bảo mật). Trong khi đó, những nhân viên lo về infrastructure thì lại lo những khía cạnh bảo mật thuộc infrastructure. Lâp trình viên và infrastructuture engineer cần phải làm việc rất gần gũi với nhau để hỗ tương cho nhau bởi vì infrastructure trực tiếp làm ảnh hưởng đến khả năng hoạt động của ứng dụng.

Xét về khía cạnh thời gian thì chắc chắc bảo mật khó có thể được kiện toàn trong thời gian ngắn. Kiến thức bảo mật cho từng engineer, bất kể là lập trình hay cơ sở hạ tầng, đều cần có thời gian để trau dồi, đúc kết và cải thiện. Điểm cốt lõi cần nằm là: phải hiểu cái mà mình cần bảo mật. Nếu mình muốn phòng ăn trộm vô nhà thuổng đồ thì mình phải hiểu nhà của mình có mấy cửa và ăn trộm có thể vô bằng ngõ nào. Sau đó mình mới nghĩ đến chuyện ổ khoá, chuyện cất dấu tiền bạc, tư trang hoặc những thứ quý giá bằng cách nào đó ở những vị trí nào đó (bí mật) trong nhà. Nếu không biết cái nhà ấy tròn hay méo thì chẳng có cách gì ngăn chặn được ăn trộm xâm nhập.

fir3t0ad wrote:

Và khi ra đi làm (do em là sinh viên nên em cũng chỉ giả định theo hiểu biết của em) em nghĩ sẽ có nhiều việc ảnh hưởng đến sự nghiệp của em và lúc đó có lẽ công việc nó sẽ yêu cầu mình cần học tiếp những gì, ví dụ em đi làm thêm bồi bàn hồi hè sau đó được chuyển sang thu ngân thế là phải học cách điền sổ sách trong khi vốn lúc đầu dự định đi làm thêm là để có chút ít thu nhập và tăng khả năng giao tiếp.


Mình đang bắt đầu nghiên cứu về mảng Web App Security. Với những bạn đi trước, đã có kinh nghiệm trong mảng này, mình muốn hỏi là theo ý kiến (chủ quan) của các bạn, lộ trình và quy trình nghiên cứu trong mảng này nên là như thế nào để có thể nắm vững kiến thức và tiến xa trong mảng (Web App Security) này ?  



Như vậy phải chăng sẽ khó hoặc thậm chí gần như không thể có được một lộ trình và quy trình "chuẩn" cho tất thảy mọi người để có thể dẫn đến tiến xa trong mảng (Web App Security) này?

 

Tớ nghĩ chẳng có một quy trình nào "chuẩn" hết. Vả lại, "chuẩn" theo cái gì? Cái gì là "chuẩn"? Mỗi môi trường có một nhu cầu và ưu tiên khác nhau, sử dụng các công nghệ khác nhau, có tiêu chí khác nhau. Bởi vậy, chẳng thể có một cái gọi là "one size fits all" được. Tuy vậy, cá nhân tớ nghĩ là "quy trình phát triển" (tạm gọi là vậy) có thể được nhìn một cách tổng quát như sau:

Học và hiểu cái "what" ---> đào sâu đến "why" --> áp dụng --> phát triển --> mở rộng --> sáng tạo cái mới.

Khi "cái mới" ấy hình thành thì một vòng quy trình lại lặp lại. "Cái mới" ấy được khởi đầu bằng học và hiểu cái "what" (cái mới) --> đào sâu......

Thử áp dụng thì thấy, lập trình viên cần học ngôn ngữ lập trình để nắm được tính năng và cú pháp của ngôn ngữ ấy (đó là cái "what"smilie. Sau đó mới đặt câu hỏi tại sao phải sử dụng những tính năng ấy, tại sao phải theo những ấy định của ngôn ngữ lập trình ấy như vậy (đó là cái "why"smilie. Sau khi nằm được "why", việc áp dụng, phát triển và mở rộng tự nhiên đi theo.

Theo tớ, điểm đến tận cùng không phải là "tạo ra sản phẩm" mà là tìm đến cái mới, tìm đến sự sáng tạo và mở ra những khả năng mới để tiếp tục phát triển. Đó là lý do thế giới này tiếp tục phát triển.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Guidance]   Lộ trình nghiên cứu mảng Web App Security 19/10/2010 00:09:22 (+0700) | #7 | 223109
[Avatar]
fir3t0ad
Member

[Minus]    0    [Plus]
Joined: 11/10/2010 22:36:00
Messages: 19
Offline
[Profile] [PM]
Đúng là một số điểm anh nói về "Integrity" em vẫn còn hơi mơ hồ và đang tìm tài liệu để đọc thêm. Nếu có gì thắc mắc em sẽ lập topic để nhờ anh tham vấn sau.

Còn lại em rất cảm ơn anh đã chia sẻ, kinh nghiệm và cách nhìn của một đàn anh đi trước giúp em cũng như những bạn thực sự quan tâm thêm cơ sở để tránh lao đầu vào những cái không có thực.

Học và hiểu cái "what" ---> đào sâu đến "why" --> áp dụng --> phát triển --> mở rộng --> sáng tạo cái mới.  


Em thực sự tâm đắc với quan điểm này của anh. Nó giúp em hiểu rõ vì sao cứ học một ngôn ngữ mới nào đó là có cái cảm giác không chắc chắn với ngôn ngữ đã học. Vì phần lớn em đang học theo kiểu:

Học cái "what" --> áp dụng --> gặp khó--> tìm hiểu lại cái "What"--> vẫn khó--> đào sâu cái "Why" hoặc tìm giải pháp "chạy được là được".

Hì chấn chỉnh lại thôi.
[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|