Liên kết html không an toàn

Khi bạn cho phép AngularJS viết HTML trong ứng dụng của mình, bạn nên kiểm tra HTML để tìm mã nguy hiểm. Bằng cách bao gồm "khử trùng góc. js" trong ứng dụng của mình, bạn có thể làm như vậy bằng cách chạy mã HTML thông qua hàm ngSanitize

Các khung ứng dụng web được tạo ra để giúp các nhà phát triển xây dựng các ứng dụng web. Một số trong số họ cũng giúp bạn bảo mật ứng dụng web. Trên thực tế, một khung không an toàn hơn khung khác. Nếu bạn sử dụng nó đúng cách, bạn sẽ có thể xây dựng các ứng dụng an toàn với nhiều khung. Ruby on Rails có một số phương thức trợ giúp thông minh, chẳng hạn như chống lại SQL injection, vì vậy đây hầu như không phải là vấn đề

Nói chung không có cái gọi là bảo mật plug-n-play. Bảo mật phụ thuộc vào những người sử dụng khung và đôi khi vào phương pháp phát triển. Và nó phụ thuộc vào tất cả các lớp của môi trường ứng dụng web. Bộ lưu trữ phía sau, máy chủ web và chính ứng dụng web (và có thể là các lớp hoặc ứng dụng khác)

Tuy nhiên, Tập đoàn Gartner ước tính rằng 75% các cuộc tấn công nằm ở lớp ứng dụng web và phát hiện ra rằng "trong số 300 trang web được kiểm toán, 97% dễ bị tấn công". Điều này là do các ứng dụng web tương đối dễ bị tấn công, vì chúng dễ hiểu và thao tác đơn giản, ngay cả với người bình thường.

Các mối đe dọa đối với các ứng dụng web bao gồm chiếm đoạt tài khoản người dùng, bỏ qua kiểm soát truy cập, đọc hoặc sửa đổi dữ liệu nhạy cảm hoặc trình bày nội dung lừa đảo. Hoặc kẻ tấn công có thể cài đặt chương trình ngựa thành Troia hoặc phần mềm gửi e-mail không mong muốn, nhằm mục đích làm giàu tài chính hoặc gây thiệt hại cho thương hiệu bằng cách sửa đổi tài nguyên của công ty. Để ngăn chặn các cuộc tấn công, giảm thiểu tác động của chúng và loại bỏ các điểm bị tấn công, trước hết bạn phải hiểu đầy đủ về các phương thức tấn công để tìm ra biện pháp đối phó chính xác. Đó là những gì hướng dẫn này nhằm mục đích

Để phát triển các ứng dụng web an toàn, bạn phải cập nhật tất cả các lớp và biết kẻ thù của mình. Để luôn cập nhật, hãy đăng ký danh sách gửi thư bảo mật, đọc blog bảo mật và tạo thói quen cập nhật và kiểm tra bảo mật (xem chương Tài nguyên bổ sung). Nó được thực hiện thủ công vì đó là cách bạn tìm thấy các vấn đề bảo mật logic khó chịu

Chương này mô tả một số cuộc tấn công cụ thể liên quan đến phiên và các biện pháp bảo mật để bảo vệ dữ liệu phiên của bạn

2. 1 Phiên là gì?

Phiên cho phép ứng dụng duy trì trạng thái dành riêng cho người dùng, trong khi người dùng tương tác với ứng dụng. Ví dụ: các phiên cho phép người dùng xác thực một lần và duy trì trạng thái đăng nhập cho các yêu cầu trong tương lai

Hầu hết các ứng dụng cần theo dõi trạng thái của người dùng tương tác với ứng dụng. Đây có thể là nội dung của giỏ hàng hoặc id người dùng của người dùng hiện đang đăng nhập. Loại trạng thái dành riêng cho người dùng này có thể được lưu trữ trong phiên

Rails cung cấp một đối tượng phiên cho mỗi người dùng truy cập ứng dụng. Nếu người dùng đã có phiên hoạt động, Rails sẽ sử dụng phiên hiện có. Nếu không, một phiên mới được tạo

2. Chiếm quyền điều khiển 2 phiên

Đánh cắp ID phiên của người dùng cho phép kẻ tấn công sử dụng ứng dụng web dưới tên của nạn nhân

Nhiều ứng dụng web có hệ thống xác thực. người dùng cung cấp tên người dùng và mật khẩu, ứng dụng web sẽ kiểm tra chúng và lưu id người dùng tương ứng trong hàm băm phiên. Từ bây giờ, phiên có hiệu lực. Đối với mọi yêu cầu, ứng dụng sẽ tải người dùng, được xác định bởi id người dùng trong phiên mà không cần xác thực mới. ID phiên trong cookie xác định phiên

Do đó, cookie đóng vai trò xác thực tạm thời cho ứng dụng web. Bất kỳ ai lấy cookie từ người khác đều có thể sử dụng ứng dụng web với tư cách là người dùng này - với những hậu quả nghiêm trọng có thể xảy ra. Dưới đây là một số cách để chiếm quyền điều khiển phiên và các biện pháp đối phó của chúng

  • Sniff cookie trong một mạng không an toàn. Mạng LAN không dây có thể là một ví dụ về mạng như vậy. Trong một mạng LAN không dây không được mã hóa, việc nghe lưu lượng truy cập của tất cả các máy khách được kết nối trở nên đặc biệt dễ dàng. Đối với trình tạo ứng dụng web, điều này có nghĩa là cung cấp kết nối an toàn qua SSL. Trong đường ray 3. 1 trở lên, điều này có thể được thực hiện bằng cách luôn buộc kết nối SSL trong tệp cấu hình ứng dụng của bạn

    config.force_ssl = true
    
    Bản sao

  • Hầu hết mọi người không xóa cookie sau khi làm việc tại nhà ga công cộng. Vì vậy, nếu người dùng cuối cùng không đăng xuất khỏi ứng dụng web, bạn sẽ có thể sử dụng ứng dụng đó với tư cách là người dùng này. Cung cấp cho người dùng nút đăng xuất trong ứng dụng web và làm cho nút đó nổi bật

  • Nhiều khai thác tập lệnh chéo trang (XSS) nhằm mục đích lấy cookie của người dùng. Bạn sẽ đọc thêm về XSS sau

  • Thay vì đánh cắp một cookie mà kẻ tấn công không biết, chúng sửa mã định danh phiên của người dùng (trong cookie) mà chúng biết. Đọc thêm về cái gọi là phiên cố định này sau

Mục tiêu chính của hầu hết những kẻ tấn công là kiếm tiền. Giá ngầm cho các tài khoản đăng nhập ngân hàng bị đánh cắp dao động từ 0. 5%-10% số dư tài khoản, $0. 5-$30 cho số thẻ tín dụng ($20-$60 với đầy đủ chi tiết), $0. 1-$1. 5 cho danh tính (Tên, SSN và DOB), $20-$50 cho tài khoản nhà bán lẻ và $6-$10 cho tài khoản nhà cung cấp dịch vụ đám mây, theo Symantec Internet Security Threat Report (2017)

2. Lưu trữ 3 phiên

Rails sử dụng

secret_key_base: 492f...
3 làm bộ lưu trữ phiên mặc định

Rails

secret_key_base: 492f...
4 lưu phiên băm trong cookie ở phía máy khách. Máy chủ truy xuất hàm băm phiên từ cookie và loại bỏ nhu cầu về ID phiên. Điều đó sẽ làm tăng đáng kể tốc độ của ứng dụng, nhưng nó là một tùy chọn lưu trữ gây tranh cãi và bạn phải suy nghĩ về ý nghĩa bảo mật và giới hạn lưu trữ của nó

  • Cookie có giới hạn kích thước là 4 kB. Chỉ sử dụng cookie cho dữ liệu có liên quan đến phiên

  • Cookie được lưu trữ ở phía máy khách. Khách hàng có thể bảo quản nội dung cookie ngay cả đối với cookie đã hết hạn. Máy khách có thể sao chép cookie sang các máy khác. Tránh lưu trữ dữ liệu nhạy cảm trong cookie

  • Bản chất cookie là tạm thời. Máy chủ có thể đặt thời gian hết hạn cho cookie, nhưng máy khách có thể xóa cookie và nội dung của nó trước thời điểm đó. Duy trì tất cả dữ liệu có tính chất lâu dài hơn ở phía máy chủ

  • Cookie phiên không tự làm mất hiệu lực và có thể được sử dụng lại với mục đích xấu. Có thể là một ý tưởng hay nếu ứng dụng của bạn vô hiệu hóa cookie phiên cũ bằng cách sử dụng dấu thời gian được lưu trữ

  • Rails mã hóa cookie theo mặc định. Khách hàng không thể đọc hoặc chỉnh sửa nội dung của cookie mà không vi phạm mã hóa. Nếu bạn quan tâm đúng mức đến các bí mật của mình, bạn có thể coi cookie của mình được bảo mật chung

secret_key_base: 492f...
4 sử dụng lọ cookie được mã hóa để cung cấp vị trí được mã hóa, an toàn để lưu trữ dữ liệu phiên. Do đó, các phiên dựa trên cookie cung cấp cả tính toàn vẹn cũng như tính bảo mật cho nội dung của chúng. Khóa mã hóa, cũng như khóa xác minh được sử dụng cho cookie đã ký, được lấy từ giá trị cấu hình
secret_key_base: 492f...
6

Bí mật phải dài và ngẫu nhiên. Sử dụng

secret_key_base: 492f...
7 để nhận những bí mật độc đáo mới

Điều quan trọng nữa là sử dụng các giá trị muối khác nhau cho cookie được mã hóa và đã ký. Sử dụng cùng một giá trị cho các giá trị cấu hình muối khác nhau có thể dẫn đến cùng một khóa dẫn xuất được sử dụng cho các tính năng bảo mật khác nhau, do đó có thể làm suy yếu độ mạnh của khóa

Trong các ứng dụng thử nghiệm và phát triển nhận được một

secret_key_base: 492f...
6 bắt nguồn từ tên ứng dụng. Các môi trường khác phải sử dụng khóa ngẫu nhiên có trong
secret_key_base: 492f...
9, được hiển thị ở đây ở trạng thái được giải mã

secret_key_base: 492f...
Bản sao

Nếu các bí mật của ứng dụng của bạn có thể đã bị lộ, hãy cân nhắc kỹ lưỡng việc thay đổi chúng. Thay đổi

secret_key_base: 492f...
6 sẽ hết hạn các phiên hoạt động hiện tại

2. 4 Luân phiên cấu hình cookie được mã hóa và đã ký

Xoay vòng là lý tưởng để thay đổi cấu hình cookie và đảm bảo cookie cũ không bị vô hiệu ngay lập tức. Sau đó, người dùng của bạn có cơ hội truy cập trang web của bạn, đọc cookie của họ với cấu hình cũ và viết lại nó với thay đổi mới. Sau đó, vòng quay có thể bị xóa khi bạn cảm thấy đủ thoải mái. Người dùng đã có cơ hội nâng cấp cookie của họ

Có thể xoay các mật mã và thông báo được sử dụng cho các cookie đã mã hóa và đã ký

Ví dụ: để thay đổi thông báo được sử dụng cho cookie đã ký từ SHA1 thành SHA256, trước tiên bạn sẽ chỉ định giá trị cấu hình mới

secret_key_base: 492f...
0 Bản sao

Bây giờ, hãy thêm một vòng quay cho thông báo SHA1 cũ để các cookie hiện có được nâng cấp liền mạch lên thông báo SHA256 mới

secret_key_base: 492f...
1 Bản sao

Sau đó, mọi cookie đã ký bằng văn bản sẽ được tiêu hóa bằng SHA256. Vẫn có thể đọc các cookie cũ được ghi bằng SHA1 và nếu được truy cập, chúng sẽ được ghi bằng thông báo mới để chúng được nâng cấp và sẽ không hợp lệ khi bạn xóa xoay vòng

Sau khi người dùng có cookie đã ký được tiêu hóa SHA1 sẽ không còn cơ hội ghi lại cookie của họ nữa, hãy xóa xoay vòng

Mặc dù bạn có thể thiết lập bao nhiêu vòng quay tùy thích, nhưng việc có nhiều vòng quay diễn ra cùng một lúc là điều không phổ biến

Để biết thêm chi tiết về xoay khóa với các tin nhắn đã mã hóa và đã ký cũng như các tùy chọn khác nhau mà phương thức

secret_key_base: 492f...
01 chấp nhận, vui lòng tham khảo tài liệu API MessageEncryptor và API MessageVerifier

2. 5 Replay Attacks cho CookieStore Sessions

Một loại tấn công khác mà bạn phải biết khi sử dụng

secret_key_base: 492f...
4 là tấn công lặp lại

Nó hoạt động như thế này

  • Người dùng nhận được tín dụng, số tiền được lưu trữ trong một phiên (dù sao đó cũng là một ý tưởng tồi, nhưng chúng tôi sẽ làm điều này cho mục đích trình diễn)
  • Người dùng mua thứ gì đó
  • Giá trị tín dụng điều chỉnh mới được lưu trữ trong phiên
  • Người dùng lấy cookie từ bước đầu tiên (mà họ đã sao chép trước đó) và thay thế cookie hiện tại trong trình duyệt
  • Người dùng có lại tín dụng ban đầu của họ

Bao gồm một nonce (một giá trị ngẫu nhiên) trong phiên giải quyết các cuộc tấn công phát lại. Một nonce chỉ hợp lệ một lần và máy chủ phải theo dõi tất cả các nonce hợp lệ. Nó thậm chí còn phức tạp hơn nếu bạn có nhiều máy chủ ứng dụng. Lưu trữ nonces trong bảng cơ sở dữ liệu sẽ đánh bại toàn bộ mục đích của CookieStore (tránh truy cập cơ sở dữ liệu)

Giải pháp tốt nhất để chống lại nó không phải là lưu trữ loại dữ liệu này trong một phiên mà là trong cơ sở dữ liệu. Trong trường hợp này, lưu trữ tín dụng trong cơ sở dữ liệu và

secret_key_base: 492f...
03 trong phiên

2. 6 Phiên cố định

Ngoài việc đánh cắp ID phiên của người dùng, kẻ tấn công có thể sửa ID phiên mà họ biết. Điều này được gọi là cố định phiên

Liên kết html không an toàn

Cuộc tấn công này tập trung vào việc sửa ID phiên của người dùng mà kẻ tấn công đã biết và buộc trình duyệt của người dùng sử dụng ID này. Do đó, kẻ tấn công không cần thiết phải đánh cắp ID phiên sau đó. Đây là cách cuộc tấn công này hoạt động

  • Kẻ tấn công tạo ID phiên hợp lệ. Họ tải trang đăng nhập của ứng dụng web nơi họ muốn sửa phiên và lấy ID phiên trong cookie từ phản hồi (xem số 1 và 2 trong hình ảnh)
  • Họ duy trì phiên bằng cách truy cập ứng dụng web định kỳ để duy trì phiên hết hạn
  • Kẻ tấn công buộc trình duyệt của người dùng sử dụng ID phiên này (xem số 3 trong hình ảnh). Vì bạn không thể thay đổi cookie của một tên miền khác (vì có cùng chính sách gốc), kẻ tấn công phải chạy JavaScript từ tên miền của ứng dụng web mục tiêu. Tiêm mã JavaScript vào ứng dụng bằng XSS hoàn thành cuộc tấn công này. Đây là một ví dụ.
    secret_key_base: 492f...
    
    04. Đọc thêm về XSS và injection sau này
  • Kẻ tấn công dụ nạn nhân đến trang bị nhiễm bằng mã JavaScript. Bằng cách xem trang, trình duyệt của nạn nhân sẽ thay đổi ID phiên thành ID phiên bẫy
  • Vì phiên bẫy mới không được sử dụng, ứng dụng web sẽ yêu cầu người dùng xác thực
  • Từ bây giờ, nạn nhân và kẻ tấn công sẽ cùng sử dụng ứng dụng web trong cùng một phiên. Phiên trở nên hợp lệ và nạn nhân không nhận thấy cuộc tấn công

2. 7 Cố định phiên - Biện pháp đối phó

Một dòng mã sẽ bảo vệ bạn khỏi sự cố định phiên

Biện pháp đối phó hiệu quả nhất là cấp mã định danh phiên mới và tuyên bố mã định danh cũ không hợp lệ sau khi đăng nhập thành công. Bằng cách đó, kẻ tấn công không thể sử dụng mã định danh phiên cố định. Đây cũng là một biện pháp đối phó tốt đối với việc chiếm quyền điều khiển phiên. Đây là cách tạo một phiên mới trong Rails

Nếu bạn sử dụng đá quý Devise phổ biến để quản lý người dùng, nó sẽ tự động hết hạn các phiên đăng nhập và đăng xuất cho bạn. Nếu bạn cuộn của riêng mình, hãy nhớ hết hạn phiên sau hành động đăng nhập của bạn (khi phiên được tạo). Điều này sẽ xóa các giá trị khỏi phiên, do đó bạn sẽ phải chuyển chúng sang phiên mới

Một biện pháp đối phó khác là lưu các thuộc tính dành riêng cho người dùng trong phiên, xác minh chúng mỗi khi có yêu cầu và từ chối quyền truy cập nếu thông tin không khớp. Các thuộc tính như vậy có thể là địa chỉ IP từ xa hoặc tác nhân người dùng (tên trình duyệt web), mặc dù tác nhân sau ít dành riêng cho người dùng hơn. Khi lưu địa chỉ IP, bạn phải nhớ rằng có những nhà cung cấp dịch vụ Internet hoặc các tổ chức lớn đặt người dùng của họ làm proxy. Những điều này có thể thay đổi trong suốt một phiên, vì vậy những người dùng này sẽ không thể sử dụng ứng dụng của bạn hoặc chỉ sử dụng được ở một mức độ hạn chế

2. Hết hạn phiên 8

Các phiên không bao giờ hết hạn sẽ mở rộng khung thời gian cho các cuộc tấn công như giả mạo yêu cầu giữa các trang web (CSRF), chiếm quyền điều khiển phiên và sửa phiên

Một khả năng là đặt dấu thời gian hết hạn của cookie bằng ID phiên. Tuy nhiên, khách hàng có thể chỉnh sửa cookie được lưu trữ trong trình duyệt web để các phiên hết hạn trên máy chủ sẽ an toàn hơn. Dưới đây là một ví dụ về cách hết hạn phiên trong bảng cơ sở dữ liệu. Gọi

secret_key_base: 492f...
05 để hết hạn các phiên đã được sử dụng lâu hơn 20 phút trước

secret_key_base: 492f...
7 Bản sao

Phần về cố định phiên đã giới thiệu vấn đề về phiên duy trì. Kẻ tấn công duy trì phiên cứ năm phút một lần có thể giữ phiên tồn tại mãi mãi, mặc dù bạn đang hết hạn phiên. Một giải pháp đơn giản cho việc này là thêm cột

secret_key_base: 492f...
06 vào bảng phiên. Bây giờ bạn có thể xóa các phiên đã được tạo từ lâu. Sử dụng dòng này trong phương pháp quét ở trên

secret_key_base: 492f...
9 Bản sao

Phương pháp tấn công này hoạt động bằng cách bao gồm mã độc hại hoặc liên kết trong trang truy cập ứng dụng web mà người dùng được cho là đã xác thực. Nếu phiên cho ứng dụng web đó chưa hết thời gian, kẻ tấn công có thể thực thi các lệnh trái phép

Liên kết html không an toàn

Trong chương phiên, bạn đã biết rằng hầu hết các ứng dụng Rails đều sử dụng phiên dựa trên cookie. Họ lưu trữ ID phiên trong cookie và có hàm băm phiên phía máy chủ hoặc toàn bộ hàm băm phiên nằm ở phía máy khách. Trong cả hai trường hợp, trình duyệt sẽ tự động gửi cookie theo mọi yêu cầu tới một miền, nếu nó có thể tìm thấy cookie cho miền đó. Điểm gây tranh cãi là nếu yêu cầu đến từ một trang web thuộc miền khác, nó cũng sẽ gửi cookie. Hãy bắt đầu với một ví dụ

  • Bob duyệt một bảng tin và xem một bài đăng từ một tin tặc có phần tử hình ảnh HTML được tạo thủ công. Phần tử tham chiếu đến một lệnh trong ứng dụng quản lý dự án của Bob, chứ không phải là tệp hình ảnh.
    secret_key_base: 492f...
    
    07
  • Phiên của Bob tại
    secret_key_base: 492f...
    
    08 vẫn tồn tại, bởi vì anh ấy đã không đăng xuất vài phút trước
  • Bằng cách xem bài đăng, trình duyệt tìm thấy thẻ hình ảnh. Nó cố tải hình ảnh bị nghi ngờ từ
    secret_key_base: 492f...
    
    08. Như đã giải thích trước đây, nó cũng sẽ gửi cookie có ID phiên hợp lệ
  • Ứng dụng web tại
    secret_key_base: 492f...
    
    08 xác minh thông tin người dùng trong hàm băm phiên tương ứng và hủy dự án có ID 1. Sau đó nó trả về một trang kết quả là kết quả không như mong đợi của trình duyệt nên sẽ không hiển thị hình ảnh
  • Bob không nhận thấy cuộc tấn công - nhưng vài ngày sau, anh ấy phát hiện ra rằng dự án số một đã biến mất

Điều quan trọng cần lưu ý là hình ảnh hoặc liên kết được tạo thủ công thực sự không nhất thiết phải nằm trong miền của ứng dụng web, nó có thể ở bất kỳ đâu - trong diễn đàn, bài đăng trên blog hoặc email

CSRF rất hiếm khi xuất hiện trong CVE (Lỗ hổng phổ biến và Phơi nhiễm) - dưới 0. 1% năm 2006 - nhưng nó thực sự là 'người khổng lồ đang ngủ' [Grossman]. Điều này hoàn toàn trái ngược với kết quả trong nhiều hợp đồng bảo mật - CSRF là một vấn đề bảo mật quan trọng

3. 1 Biện pháp đối phó CSRF

Đầu tiên, theo yêu cầu của W3C, hãy sử dụng GET và POST một cách thích hợp. Thứ hai, mã thông báo bảo mật trong các yêu cầu không NHẬN sẽ bảo vệ ứng dụng của bạn khỏi CSRF

Về cơ bản, giao thức HTTP cung cấp hai loại yêu cầu chính - GET và POST (DELETE, PUT và PATCH nên được sử dụng như POST). World Wide Web Consortium (W3C) cung cấp danh sách kiểm tra để chọn HTTP GET hoặc POST

Sử dụng NHẬN nếu

  • Sự tương tác giống như một câu hỏi hơn (tôi. e. , đó là một thao tác an toàn chẳng hạn như truy vấn, thao tác đọc hoặc tra cứu)

Sử dụng POST nếu

  • Sự tương tác giống như một đơn đặt hàng, hoặc
  • Sự tương tác thay đổi trạng thái của tài nguyên theo cách mà người dùng sẽ cảm nhận được (e. g. , đăng ký một dịch vụ), hoặc
  • Người dùng chịu trách nhiệm về kết quả tương tác

Nếu ứng dụng web của bạn là RESTful, bạn có thể đã quen với các động từ HTTP bổ sung, chẳng hạn như PATCH, PUT hoặc DELETE. Tuy nhiên, một số trình duyệt web cũ không hỗ trợ chúng - chỉ GET và POST. Rails sử dụng trường

secret_key_base: 492f...
11 ẩn để xử lý các trường hợp này

Yêu cầu POST cũng có thể được gửi tự động. Trong ví dụ này, liên kết www. vô hại. com được hiển thị dưới dạng đích trong thanh trạng thái của trình duyệt. Nhưng nó đã thực sự tự động tạo một biểu mẫu mới gửi yêu cầu POST

secret_key_base: 492f...
5 Bản sao

Hoặc kẻ tấn công đặt mã vào trình xử lý sự kiện onmouseover của một hình ảnh

secret_key_base: 492f...
6 Bản sao

Có nhiều khả năng khác, như sử dụng Bản sao

secret_key_base: 492f...
04

Mã JavaScript này sẽ chỉ hiển thị một hộp cảnh báo. Các ví dụ tiếp theo thực hiện chính xác như vậy, chỉ ở những nơi rất hiếm gặp

secret_key_base: 492f...
8 Bản sao

Tất nhiên, đối với kẻ tấn công, điều này không hữu ích, vì nạn nhân sẽ thấy cookie của chính họ. Ví dụ tiếp theo sẽ thử tải một hình ảnh từ URL http. //www. kẻ tấn công. com/ cộng với cookie. Tất nhiên URL này không tồn tại nên trình duyệt không hiển thị gì. Nhưng kẻ tấn công có thể xem lại tệp nhật ký truy cập máy chủ web của họ để xem cookie của nạn nhân

secret_key_base: 492f...
9

Các tệp nhật ký trên www. kẻ tấn công. com sẽ đọc như thế này

secret_key_base: 492f...
0

Bạn có thể giảm thiểu các cuộc tấn công này (theo cách rõ ràng) bằng cách thêm cờ httpOnly vào cookie để JavaScript có thể không đọc được

secret_key_base: 492f...
13. Có thể sử dụng cookie chỉ HTTP từ IE v6. SP1, Firefox v2. 0. 0. 5, Opera 9. 5, Safari 4 và Chrome 1. 0. 154 trở đi. Nhưng các trình duyệt khác, cũ hơn (chẳng hạn như WebTV và IE 5. 5 trên Mac) thực sự có thể khiến trang không tải được. Tuy nhiên, được cảnh báo rằng cookie sẽ vẫn hiển thị khi sử dụng Ajax

7. 3. 2. 2 sự đào thải

Với việc xóa trang web, kẻ tấn công có thể làm rất nhiều việc, chẳng hạn như đưa ra thông tin sai lệch hoặc dụ nạn nhân vào trang web của kẻ tấn công để lấy cắp cookie, thông tin đăng nhập hoặc dữ liệu nhạy cảm khác. Cách phổ biến nhất là bao gồm mã từ các nguồn bên ngoài bằng iframe

secret_key_base: 492f...
9

Điều này tải HTML và/hoặc JavaScript tùy ý từ một nguồn bên ngoài và nhúng nó như một phần của trang web.

secret_key_base: 492f...
14 này được lấy từ một cuộc tấn công thực tế vào các trang web hợp pháp của Ý bằng cách sử dụng khung tấn công Mpack. Mpack cố gắng cài đặt phần mềm độc hại thông qua các lỗ hổng bảo mật trong trình duyệt web - rất thành công, 50% các cuộc tấn công thành công

Một cuộc tấn công chuyên biệt hơn có thể chồng lên toàn bộ trang web hoặc hiển thị biểu mẫu đăng nhập trông giống như biểu mẫu ban đầu của trang web nhưng chuyển tên người dùng và mật khẩu đến trang web của kẻ tấn công. Hoặc nó có thể sử dụng CSS và/hoặc JavaScript để ẩn một liên kết hợp pháp trong ứng dụng web và hiển thị một liên kết khác ở vị trí chuyển hướng đến một trang web giả mạo

Các cuộc tấn công tiêm nhiễm được phản ánh là những cuộc tấn công mà trọng tải không được lưu trữ để hiển thị cho nạn nhân sau này, nhưng được bao gồm trong URL. Đặc biệt là các hình thức tìm kiếm không thoát khỏi chuỗi tìm kiếm. Liên kết sau đây trình bày một trang nói rằng "George Bush bổ nhiệm một cậu bé 9 tuổi làm chủ tịch. "