Hướng dẫn when should you sanitize html? - khi nào bạn nên vệ sinh html?

Người dùng bằng không đáng tin cậy. Không bao giờ tin tưởng vào đầu vào của người dùng không đáng tin cậy. Tôi nhận được điều đó. Tuy nhiên, tôi đang tự hỏi khi nào thời gian tốt nhất để vệ sinh đầu vào là. Ví dụ: bạn có mù quáng lưu trữ đầu vào của người dùng và sau đó vệ sinh nó bất cứ khi nào nó được truy cập/sử dụng, hoặc bạn có vệ sinh đầu vào ngay lập tức và sau đó lưu trữ phiên bản "đã làm sạch" này không? Có lẽ cũng có một số cách tiếp cận khác mà tôi chưa có mặc dù ngoài những điều này. Tôi đang nghiêng nhiều hơn về phương pháp đầu tiên, bởi vì bất kỳ dữ liệu nào đến từ đầu vào của người dùng vẫn phải được tiếp cận một cách thận trọng, trong đó dữ liệu "được làm sạch" vẫn có thể vô tình hoặc vô tình nguy hiểm. Dù bằng cách nào, mọi người nghĩ phương pháp nào là tốt nhất, và vì lý do gì?

Hướng dẫn when should you sanitize html? - khi nào bạn nên vệ sinh html?

Script47

13,9K4 Huy hiệu vàng43 Huy hiệu bạc63 Huy hiệu Đồng4 gold badges43 silver badges63 bronze badges

Khi được hỏi ngày 29 tháng 8 năm 2008 lúc 18:07Aug 29, 2008 at 18:07

Thật không may, hầu như không ai trong số những người tham gia hiểu rõ họ đang nói gì. Theo đúng nghĩa đen. Chỉ có Kibbee quản lý để làm cho nó thẳng.

Chủ đề này là tất cả về vệ sinh. Nhưng sự thật là, một điều như "vệ sinh mục đích chung" rộng rãi mà mọi người đều rất háo hức để nói về chỉ là không tồn tại.just doesn't exist.

Có một hàng triệu phương tiện khác nhau, mỗi phương tiện yêu cầu định dạng dữ liệu riêng biệt, riêng biệt. Hơn nữa - ngay cả một phương tiện nhất định cũng yêu cầu định dạng khác nhau cho các bộ phận của nó. Nói, định dạng HTML là vô dụng đối với JavaScript được nhúng trong trang HTML. Hoặc, định dạng chuỗi là vô dụng đối với các số trong truy vấn SQL.a zillion different mediums, each require it's own, distinct data formatting. Moreover - even single certain medium require different formatting for it's parts. Say, HTML formatting is useless for javascript embedded in HTML page. Or, string formatting is useless for the numbers in SQL query.

Như một vấn đề thực tế, một "vệ sinh hóa càng sớm càng tốt", như được đề xuất trong hầu hết các câu trả lời được nâng cấp, là không thể. Như người ta không thể biết trong đó một số phần trung bình hoặc trung bình, dữ liệu sẽ được sử dụng. Giả sử, chúng tôi đang chuẩn bị bảo vệ khỏi "tiêm SQL", thoát khỏi mọi thứ di chuyển. Nhưng rất tiếc! - Một số trường bắt buộc không được điền và chúng tôi phải điền lại dữ liệu vào mẫu thay vì cơ sở dữ liệu ... với tất cả các dấu gạch chéo được thêm vào.impossible. As one just cannot tell in which certain medium or medium part the data will be used. Say, we are preparing to defend from "sql-injection", escaping everything that moves. But whoops! - some required fields weren't filled and we have to fill out data back into form instead of database... with all the slashes added.

Mặt khác, chúng tôi siêng năng thoát khỏi tất cả "đầu vào của người dùng" ... nhưng trong truy vấn SQL, chúng tôi không có báo giá xung quanh nó, vì nó là một số hoặc định danh. Và không có "vệ sinh" từng giúp chúng tôi.

Một mặt thứ ba - được rồi, chúng tôi đã làm hết sức mình trong việc vệ sinh "" đầu vào người dùng "khủng khiếp và không đáng tin Rất tiếc! đã có tiêm thứ hai trong tất cả vinh quang của nó.

Vì vậy, từ quan điểm sử dụng đời thực, cách duy nhất thích hợp sẽ là

  • Định dạng, không phải bất cứ điều gì "vệ sinh"
  • ngay trước khi sử dụng
  • Theo các quy tắc trung bình nhất định
  • và thậm chí theo các quy tắc phụ cần thiết cho các phần khác nhau của phương tiện này.

Đã trả lời ngày 2 tháng 9 năm 2013 lúc 12:49Sep 2, 2013 at 12:49

Hướng dẫn when should you sanitize html? - khi nào bạn nên vệ sinh html?

Ý thức chung thông thường của bạnYour Common Sense

156K39 Huy hiệu vàng209 Huy hiệu bạc333 Huy hiệu Đồng39 gold badges209 silver badges333 bronze badges

3

Nó phụ thuộc vào loại vệ sinh bạn đang làm.

Để bảo vệ chống tiêm SQL, đừng làm bất cứ điều gì với chính dữ liệu. Chỉ cần sử dụng các câu lệnh đã chuẩn bị, và theo cách đó, bạn không phải lo lắng về việc gây rối với dữ liệu mà người dùng nhập và nó ảnh hưởng tiêu cực đến logic của bạn. Bạn phải vệ sinh một chút, để đảm bảo rằng các số là số và ngày là ngày, vì mọi thứ đều là một chuỗi như đến từ yêu cầu, nhưng đừng cố gắng kiểm tra để làm những việc như từ khóa chặn hoặc bất cứ điều gì.

Để bảo vệ chống lại các cuộc tấn công XSS, có lẽ sẽ dễ dàng khắc phục dữ liệu trước khi nó được lưu trữ. Tuy nhiên, như những người khác đã đề cập, đôi khi thật tuyệt khi có một bản sao nguyên sơ của chính xác những gì người dùng đã nhập, bởi vì một khi bạn thay đổi nó, nó sẽ mất mãi mãi. Nó gần như quá tệ, không có cách chứng minh ngu ngốc nào để đảm bảo bạn nộp đơn chỉ đưa ra HTML được vệ sinh theo cách bạn có thể đảm bảo bạn không bị SQL tiêm bằng cách sử dụng các truy vấn đã chuẩn bị.

Đã trả lời ngày 30 tháng 8 năm 2008 lúc 16:22Aug 30, 2008 at 16:22

KibbeekibbeeKibbee

64.7K27 Huy hiệu vàng141 Huy hiệu bạc181 Huy hiệu đồng27 gold badges141 silver badges181 bronze badges

Tôi vệ sinh dữ liệu người dùng của mình giống như radu ...

  1. Phía khách hàng đầu tiên sử dụng cả Regex và kiểm soát các ký tự cho phép nhập vào các trường biểu mẫu đã cho bằng cách sử dụng JavaScript hoặc jQuery gắn liền với các sự kiện, chẳng hạn như Onchange hoặc Onblur, loại bỏ bất kỳ đầu vào không được phép nào trước khi nó có thể được gửi. Tuy nhiên, nhận ra rằng điều này thực sự chỉ có tác dụng cho việc cho những người dùng biết rằng, dữ liệu cũng sẽ được kiểm tra phía máy chủ. Đó là một cảnh báo hơn bất kỳ sự bảo vệ thực tế nào.

  2. Thứ hai, và tôi hiếm khi thấy điều này được thực hiện trong những ngày này nữa, rằng lần kiểm tra đầu tiên được thực hiện phía máy chủ là kiểm tra vị trí của nơi biểu mẫu đang được gửi. Bằng cách chỉ cho phép gửi biểu mẫu từ một trang mà bạn đã chỉ định là một vị trí hợp lệ, bạn có thể giết tập lệnh trước khi bạn đọc trong bất kỳ dữ liệu nào. Được cho rằng, bản thân nó là không đủ, vì một tin tặc tốt với máy chủ của riêng họ có thể 'giả mạo' cả tên miền và địa chỉ IP để làm cho nó xuất hiện với tập lệnh của bạn rằng nó đến từ một vị trí biểu mẫu hợp lệ.

  3. Tiếp theo, và tôi thậm chí không cần phải nói điều này, nhưng luôn luôn, và ý tôi là luôn luôn, hãy chạy các tập lệnh của bạn ở chế độ Taint. Điều này buộc bạn phải không lười biếng, và siêng năng về bước số 4.ALWAYS, run your scripts in taint mode. This forces you to not get lazy, and to be diligent about step number 4.

  4. Vệ sinh dữ liệu người dùng càng sớm càng tốt bằng cách sử dụng các regexes được hình thành tốt phù hợp với dữ liệu được mong đợi từ bất kỳ trường nào trên biểu mẫu. Đừng tham gia các phím tắt như 'Horn Magic of the Unicorn' khét tiếng để thổi qua séc tist của bạn ... hoặc bạn cũng có thể tắt kiểm tra kỹ năng ở nơi đầu tiên cho tất cả những điều tốt đẹp sẽ làm cho bảo mật của bạn. Điều đó giống như cho một kẻ tâm thần một con dao sắc nhọn, mang cổ họng của bạn và nói rằng 'Bạn thực sự sẽ không làm tổn thương tôi với điều đó sẽ ".

    Và đây là nơi tôi khác nhau so với hầu hết những người khác trong bước thứ tư này, vì tôi chỉ vệ sinh dữ liệu người dùng mà tôi sẽ thực sự sử dụng theo cách có thể có rủi ro bảo mật, chẳng hạn như bất kỳ cuộc gọi hệ thống nào, bài tập cho các biến khác hoặc bất kỳ văn bản để lưu trữ dữ liệu. Nếu tôi chỉ sử dụng đầu vào dữ liệu của người dùng để so sánh với dữ liệu tôi đã tự lưu trữ trên hệ thống (do đó biết rằng dữ liệu của riêng tôi là an toàn), thì tôi không bận tâm đến việc vệ sinh dữ liệu người dùng, vì tôi Tôi sẽ không bao giờ đến với chúng tôi, đó là một cách thể hiện chính nó như một vấn đề bảo mật. Chẳng hạn, lấy đầu vào tên người dùng làm ví dụ. Tôi chỉ sử dụng đầu vào tên người dùng của người dùng để kiểm tra nó với khớp trong cơ sở dữ liệu của mình và nếu đúng, sau đó tôi sử dụng dữ liệu từ cơ sở dữ liệu để thực hiện tất cả các chức năng khác mà tôi có thể gọi cho nó trong tập lệnh, biết nó là an toàn và không bao giờ sử dụng dữ liệu người dùng một lần nữa sau đó.

  5. Cuối cùng, là lọc ra tất cả các phần phụ tự động đã cố gắng bởi robot ngày nay, với hệ thống 'xác thực con người', chẳng hạn như CAPTCHA. Điều này đủ quan trọng trong những ngày này, tôi đã dành thời gian để viết lược đồ 'xác thực con người' của riêng mình sử dụng ảnh và đầu vào cho 'con người' để nhập những gì họ nhìn thấy trong hình. Tôi đã làm điều này bởi vì tôi đã thấy rằng các hệ thống loại Captcha thực sự gây khó chịu cho người dùng (bạn có thể nói bằng mắt nheo mắt của họ khỏi việc cố gắng giải mã các chữ cái bị bóp méo ... thường lặp đi lặp lại). Điều này đặc biệt quan trọng đối với các tập lệnh sử dụng SendMail hoặc SMTP cho email, vì đây là những mục yêu thích cho buts spam đói của bạn.

Để kết thúc nó một cách ngắn gọn, tôi sẽ giải thích nó như tôi làm cho vợ tôi ... Máy chủ của bạn giống như một hộp đêm phổ biến và bạn càng gặp nhiều rắc rối, bạn càng ít gặp rắc rối trong hộp đêm. Tôi có hai bouncers bên ngoài cửa (xác thực phía khách hàng và xác thực con người), một bouncer ngay bên trong cửa (kiểm tra vị trí gửi biểu mẫu hợp lệ ... 'là điều đó thực sự là bạn trên ID này') và một số người bị trả lại gần Gần với cửa (chạy chế độ nháp và sử dụng các regexes tốt để kiểm tra dữ liệu người dùng).

Tôi biết đây là một bài viết cũ hơn, nhưng tôi cảm thấy nó đủ quan trọng đối với bất kỳ ai có thể đọc nó sau chuyến thăm của tôi ở đây để nhận ra chúng không phải là 'viên đạn ma thuật' Để làm cho dữ liệu do người dùng cung cấp an toàn. Chỉ sử dụng một hoặc hai trong số các phương pháp này thực tế là vô giá trị, vì sức mạnh của chúng chỉ tồn tại khi tất cả chúng hợp tác với nhau.

Hoặc tóm lại, như mẹ tôi thường nói ... 'an toàn hơn là xin lỗi ".

UPDATE:

Một điều nữa tôi đang làm trong những ngày này, là Base64 mã hóa tất cả dữ liệu của tôi và sau đó mã hóa dữ liệu Base64 sẽ nằm trên cơ sở dữ liệu SQL của tôi. Phải mất khoảng một phần ba tổng số byte để lưu trữ nó theo cách này, nhưng lợi ích bảo mật vượt xa kích thước thêm của dữ liệu theo ý kiến ​​của tôi.

Hướng dẫn when should you sanitize html? - khi nào bạn nên vệ sinh html?

Script47

13,9K4 Huy hiệu vàng43 Huy hiệu bạc63 Huy hiệu Đồng4 gold badges43 silver badges63 bronze badges

Đã trả lời ngày 20 tháng 8 năm 2010 lúc 2:18Aug 20, 2010 at 2:18

EpiphanyepiphanyEpiphany

1.8381 Huy hiệu vàng19 Huy hiệu bạc14 Huy hiệu đồng1 gold badge19 silver badges14 bronze badges

6

Tôi thích vệ sinh nó càng sớm càng tốt, điều đó có nghĩa là việc vệ sinh xảy ra khi người dùng cố gắng nhập dữ liệu không hợp lệ. Nếu có một hộp văn bản cho tuổi của họ và họ gõ bất cứ thứ gì khác mà một số, tôi không để chìa khóa cho bức thư đi qua.

Sau đó, bất cứ điều gì đang đọc dữ liệu (thường là một máy chủ) Tôi thực hiện kiểm tra độ tỉnh !)

Chỉnh sửa: Nhìn chung, vệ sinh sớm và vệ sinh bất cứ khi nào bạn mất tầm nhìn về dữ liệu cho một giây (ví dụ: lưu tệp -> Mở tệp)

Đã trả lời ngày 29 tháng 8 năm 2008 lúc 18:09Aug 29, 2008 at 18:09

Daniel Jenningsdaniel JenningsDaniel Jennings

6.1883 huy hiệu vàng31 Huy hiệu bạc42 Huy hiệu đồng3 gold badges31 silver badges42 bronze badges

4

Điều quan trọng nhất là luôn luôn nhất quán khi bạn trốn thoát. Vệ sinh nhân đôi vô tình là khập khiễng và không vệ sinh là nguy hiểm.

Đối với SQL, chỉ cần đảm bảo thư viện truy cập cơ sở dữ liệu của bạn hỗ trợ các biến liên kết tự động thoát khỏi các giá trị. Bất cứ ai theo cách thủ công đầu vào người dùng vào chuỗi SQL nên biết rõ hơn.

Đối với HTML, tôi thích trốn thoát vào thời điểm cuối cùng có thể. Nếu bạn phá hủy đầu vào của người dùng, bạn không bao giờ có thể lấy lại và nếu họ mắc lỗi, họ có thể chỉnh sửa và sửa lỗi sau. Nếu bạn phá hủy đầu vào ban đầu của chúng, nó sẽ biến mất mãi mãi.

Đã trả lời ngày 29 tháng 8 năm 2008 lúc 19:42Aug 29, 2008 at 19:42

CPMCPMcpm

1.54310 Huy hiệu bạc16 Huy hiệu đồng10 silver badges16 bronze badges

Sớm là tốt, chắc chắn trước khi bạn cố gắng phân tích nó. Bất cứ điều gì bạn sẽ xuất ra sau, hoặc đặc biệt là chuyển cho các thành phần khác (tức là, shell, SQL, v.v.) phải được vệ sinh.

Nhưng đừng quá nhiệt tình - ví dụ, mật khẩu được băm trước khi bạn lưu trữ chúng (phải không?). Các hàm băm có thể chấp nhận dữ liệu nhị phân tùy ý. Và bạn sẽ không bao giờ in ra mật khẩu (phải không?). Vì vậy, đừng phân tích mật khẩu - và đừng vệ sinh chúng.

Ngoài ra, hãy đảm bảo rằng bạn đang thực hiện vệ sinh từ một quy trình đáng tin cậy-JavaScript/bất cứ điều gì phía máy khách còn tệ hơn cả bảo mật/toàn vẹn vô dụng. (Tuy nhiên, nó có thể cung cấp trải nghiệm người dùng tốt hơn để thất bại sớm - chỉ cần làm cả hai nơi.)

Đã trả lời ngày 29 tháng 8 năm 2008 lúc 18:40Aug 29, 2008 at 18:40

Peter Stonepeter StonePeter Stone

3.7064 Huy hiệu vàng22 Huy hiệu bạc14 Huy hiệu đồng4 gold badges22 silver badges14 bronze badges

Ý kiến ​​của tôi là vệ sinh đầu vào của người dùng ngay khi phía máy khách và phía máy chủ có thể thực hiện được, tôi đang làm điều đó như thế này

  1. (phía máy khách), cho phép người dùng nhập chỉ các khóa cụ thể trong trường.
  2. .
  3. . Chỉ cần thoát khỏi chúng. Nếu bất cứ điều gì là nghi ngờ dừng tập lệnh dừng tập lệnh và trả lại thông báo cho người dùng rằng dữ liệu anh ta không hợp lệ.

Nếu một cái gì đó thực sự trông giống như một cuộc tấn công rõ ràng, tập lệnh gửi thư và SMS cho tôi, vì vậy tôi có thể kiểm tra và saibe ngăn nó ngay khi có thể thực hiện được, tôi chỉ cần kiểm tra nhật ký nơi tôi loggin tất cả các đầu vào của người dùng và Các bước mà tập lệnh được thực hiện trước khi chấp nhận đầu vào hoặc từ chối nó.

Đã trả lời ngày 19 tháng 7 năm 2010 lúc 8:11Jul 19, 2010 at 8:11

Radu Marisradu MarisRadu Maris

5.5584 Huy hiệu vàng39 Huy hiệu bạc54 Huy hiệu đồng4 gold badges39 silver badges54 bronze badges

Perl có một tùy chọn Taint xem xét tất cả các đầu vào của người dùng "bị nhiễm độc" cho đến khi nó được kiểm tra với một biểu thức thông thường. Dữ liệu bị nhiễm độc có thể được sử dụng và truyền xung quanh, nhưng nó làm mờ bất kỳ dữ liệu nào mà nó tiếp xúc cho đến khi không bị ảnh hưởng. Chẳng hạn, nếu đầu vào của người dùng được thêm vào một chuỗi khác, chuỗi mới cũng bị nhiễm độc. Về cơ bản, bất kỳ biểu thức nào chứa các giá trị bị nhiễm độc sẽ đưa ra kết quả bị nhiễm độc.

Dữ liệu bị nhiễm độc có thể được ném xung quanh theo ý muốn (dữ liệu bị lỗi khi nó đi), nhưng ngay khi nó được sử dụng bởi một lệnh có hiệu lực ở thế giới bên ngoài, tập lệnh Perl không thành công. Vì vậy, nếu tôi sử dụng dữ liệu bị nhiễm độc để tạo tệp, xây dựng lệnh shell, thay đổi thư mục làm việc, v.v., Perl sẽ thất bại với lỗi bảo mật.

Tôi không nhận thức được một ngôn ngữ khác có một cái gì đó như "Taint", nhưng sử dụng nó rất mở mắt. Thật đáng ngạc nhiên khi dữ liệu bị nhiễm độc nhanh chóng lan rộng nếu bạn không cởi trói cho nó ngay lập tức. Những thứ tự nhiên và bình thường đối với một lập trình viên, như thiết lập một biến dựa trên dữ liệu người dùng hoặc mở tệp, có vẻ nguy hiểm và rủi ro khi được bật. Vì vậy, chiến lược tốt nhất để hoàn thành công việc là khai thác ngay khi bạn nhận được một số dữ liệu từ bên ngoài.

Và tôi cũng nghi ngờ đó là cách tốt nhất trong các ngôn ngữ khác: Xác thực dữ liệu người dùng ngay lập tức để các lỗi và lỗ hổng bảo mật không thể lan truyền quá xa. Ngoài ra, việc kiểm toán mã dễ dàng hơn cho các lỗ bảo mật nếu các lỗ tiềm năng ở một nơi. Và bạn không bao giờ có thể dự đoán dữ liệu nào sẽ được sử dụng cho mục đích nào sau này.

Đã trả lời ngày 29 tháng 8 năm 2008 lúc 19:23Aug 29, 2008 at 19:23

Jon Ericsonjon EricsonJon Ericson

Huy hiệu vàng 20.5K1111 gold badges101 silver badges144 bronze badges

3

Làm sạch dữ liệu trước khi bạn lưu trữ nó. Nói chung, bạn không nên tạo thành bất kỳ hành động SQL nào mà không làm sạch đầu vào trước. Bạn không muốn tự mình tấn công SQL.ANY SQL actions without first cleaning up input. You don't want to subject yourself to a SQL injection attack.

Tôi sắp xếp theo các quy tắc cơ bản này.

  1. Chỉ thực hiện sửa đổi các hành động SQL, chẳng hạn như, chèn, cập nhật, xóa qua bài đăng. Không bao giờ nhận được.
  2. Thoát khỏi mọi thứ.
  3. Nếu bạn đang mong đợi đầu vào của người dùng sẽ là một cái gì đó, hãy chắc chắn rằng bạn kiểm tra xem đó là một cái gì đó. Ví dụ: bạn đang yêu cầu một số, sau đó đảm bảo đó là một số. Sử dụng xác nhận.
  4. Sử dụng bộ lọc. Làm sạch các ký tự không mong muốn.

Đã trả lời ngày 29 tháng 8 năm 2008 lúc 18:10Aug 29, 2008 at 18:10

mk.mk.mk.

25.8K13 Huy hiệu vàng37 Huy hiệu bạc41 Huy hiệu đồng13 gold badges37 silver badges41 bronze badges

Người dùng là xấu xa!

Có lẽ không phải lúc nào cũng vậy, nhưng cách tiếp cận của tôi là luôn luôn vệ sinh ngay lập tức để đảm bảo không có gì rủi ro đi bất cứ nơi nào gần phụ trợ của tôi.

Lợi ích được thêm vào là bạn có thể cung cấp nguồn cấp dữ liệu trở lại cho người dùng nếu bạn vệ sinh tại điểm đầu vào.

Đã trả lời ngày 29 tháng 8 năm 2008 lúc 18:10Aug 29, 2008 at 18:10

MartinmartinMartin

38.7K20 Huy hiệu vàng100 Huy hiệu bạc130 Huy hiệu đồng20 gold badges100 silver badges130 bronze badges

2

Giả sử tất cả người dùng là độc hại. Vệ sinh tất cả đầu vào càng sớm càng tốt. Dấu chấm.

Đã trả lời ngày 29 tháng 8 năm 2008 lúc 18:13Aug 29, 2008 at 18:13

Hướng dẫn when should you sanitize html? - khi nào bạn nên vệ sinh html?

BrianhbrianhBrianH

1.0621 Huy hiệu vàng15 Huy hiệu bạc22 Huy hiệu đồng1 gold badge15 silver badges22 bronze badges

Tôi vệ sinh dữ liệu của mình ngay trước khi tôi thực hiện bất kỳ xử lý nào trên đó. Tôi có thể cần phải lấy các trường đầu tiên và tên cuối cùng và nối chúng vào trường thứ ba được chèn vào cơ sở dữ liệu. Tôi sẽ vệ sinh đầu vào trước khi tôi thực hiện việc kết hợp để tôi không nhận được bất kỳ loại lỗi xử lý hoặc chèn nào. Càng sớm càng tốt. Ngay cả khi sử dụng JavaScript ở mặt trước (trong một thiết lập web) là lý tưởng bởi vì điều đó sẽ xảy ra mà không có bất kỳ dữ liệu nào đến máy chủ để bắt đầu.

Điều đáng sợ là bạn thậm chí cũng có thể muốn bắt đầu vệ sinh dữ liệu ra khỏi cơ sở dữ liệu của mình. Sự gia tăng gần đây của các cuộc tấn công tiêm SQL ASPROX đã xảy ra xung quanh là gây chết người vì nó sẽ lây nhiễm tất cả các bảng cơ sở dữ liệu trong một cơ sở dữ liệu nhất định. Nếu cơ sở dữ liệu của bạn được lưu trữ ở đâu đó nơi có nhiều tài khoản được lưu trữ trong cùng một cơ sở dữ liệu, dữ liệu của bạn sẽ bị hỏng vì lỗi của người khác .

Chắc chắn điều này làm cho rất nhiều công việc lên phía trước, nhưng nếu dữ liệu quan trọng, thì đó là một khoản đầu tư xứng đáng.

Đã trả lời ngày 29 tháng 8 năm 2008 lúc 18:14Aug 29, 2008 at 18:14

Dillie-ODillie-ODillie-O

28.9K14 Huy hiệu vàng100 Huy hiệu bạc140 Huy hiệu đồng14 gold badges100 silver badges140 bronze badges

Đầu vào của người dùng phải luôn luôn được coi là độc hại trước khi đưa nó xuống các lớp thấp hơn trong ứng dụng của bạn. Luôn luôn xử lý việc vệ sinh đầu vào càng sớm càng tốt và không nên được lưu trữ trong cơ sở dữ liệu của bạn trước khi kiểm tra ý định độc hại.

Đã trả lời ngày 29 tháng 8 năm 2008 lúc 18:09Aug 29, 2008 at 18:09

Sean Chamberssean ChambersSean Chambers

8.4807 Huy hiệu vàng40 Huy hiệu bạc55 Huy hiệu Đồng7 gold badges40 silver badges55 bronze badges

Tôi thấy rằng việc làm sạch nó ngay lập tức có hai lợi thế. Một, bạn có thể xác nhận chống lại nó và cung cấp phản hồi cho người dùng. Hai, bạn không phải lo lắng về việc tiêu thụ dữ liệu ở những nơi khác.

Đã trả lời ngày 29 tháng 8 năm 2008 lúc 18:09Aug 29, 2008 at 18:09

Sean Chamberssean ChambersCraig

8.4807 Huy hiệu vàng40 Huy hiệu bạc55 Huy hiệu Đồng13 gold badges42 silver badges62 bronze badges

Tôi có nên vệ sinh đầu vào của người dùng không?

Đầu vào vệ sinh có thể là một lựa chọn tốt khi định dạng đầu vào không nghiêm ngặt nhưng vẫn có thể dự đoán được, chẳng hạn như số điện thoại hoặc các trường văn bản tự do khác. Có một vài cách khác nhau để vệ sinh đầu vào, bạn có thể sử dụng danh sách trắng, danh sách đen hoặc đầu vào thoát., such as phone numbers or other free-text fields. There are a few different ways to sanitize inputs, you could use a whitelist, a blacklist, or escape input.

Làm thế nào để chất khử trùng HTML hoạt động?

Bối cảnh an toàn: Tính năng này chỉ có sẵn trong bối cảnh an toàn (HTTPS), trong một số hoặc tất cả các trình duyệt hỗ trợ.API khử trùng HTML cho phép các nhà phát triển thực hiện các chuỗi HTML và các đối tượng tài liệu hoặc tài liệu không đáng tin cậy và vệ sinh chúng để chèn an toàn vào DOM của tài liệu.allow developers to take untrusted strings of HTML and Document or DocumentFragment objects, and sanitize them for safe insertion into a document's DOM.

Tại sao bạn phải luôn luôn vệ sinh đầu vào của người dùng trước khi sử dụng chúng trong các truy vấn của bạn?

Một ứng dụng nhận được các truy vấn và yêu cầu từ các nguồn không đáng tin cậy có thể đưa hệ thống đến các cuộc tấn công độc hại.Vệ sinh đầu vào đảm bảo rằng dữ liệu đã nhập phù hợp với các yêu cầu hệ thống con và bảo mật, loại bỏ các ký tự không cần thiết có thể gây ra tác hại tiềm tàng.ensures that the entered data conforms to subsystem and security requirements, eliminating unnecessary characters that can pose potential harm.

Mục đích của việc vệ sinh dữ liệu là gì?

Vệ sinh dữ liệu liên quan đến việc cố tình, xóa vĩnh viễn hoặc phá hủy dữ liệu từ một thiết bị lưu trữ, để đảm bảo nó không thể được phục hồi.Thông thường, khi dữ liệu bị xóa khỏi phương tiện lưu trữ, phương tiện truyền thông không thực sự bị xóa và có thể được phục hồi bởi kẻ tấn công có quyền truy cập vào thiết bị.to ensure it cannot be recovered. Ordinarily, when data is deleted from storage media, the media is not really erased and can be recovered by an attacker who gains access to the device.