2010-10-06 30 views
6

Tôi đã cân nhắc việc sử dụng Google App Engine cho một số dự án sở thích. Mặc dù họ sẽ không xử lý bất kỳ dữ liệu nhạy cảm nào, tôi vẫn muốn làm cho chúng tương đối an toàn vì một số lý do, như tìm hiểu về bảo mật, pháp lý, v.v.Các vấn đề bảo mật cần được giải quyết khi làm việc với Google App Engine?

Các vấn đề bảo mật cần được giải quyết khi làm việc với Google App Engine?

Có phải các vấn đề tương tự như các ứng dụng khác - như các ứng dụng được viết bằng ngôn ngữ khác hoặc được lưu trữ theo các cách khác - phải đối mặt với?

Chỉnh sửa: Tôi đã thực hiện một số tìm kiếm có vẻ như tôi cần vệ sinh đầu vào cho XSS and Injection. Những điều khác cần cân nhắc là gì?

Trả lời

6

Đầu vào "khử trùng" không phải là cách để tránh các vấn đề về tiêm truy vấn và đánh dấu. Sử dụng đúng mẫu thoát ở giai đoạn đầu ra là ... hoặc, thậm chí tốt hơn, bằng cách sử dụng công cụ cấp cao hơn liên quan đến nó cho bạn.

Vì vậy, để ngăn truy vấn-tiêm chống lại GQL, sử dụng giao diện ràng buộc tham số của GqlQuery. Để ngăn chặn đánh dấu-tiêm chống lại HTML (dẫn đến XSS), sử dụng tính năng thoát HTML của bất kỳ ngôn ngữ templating bạn đang sử dụng. Ví dụ: đối với các mẫu Django, |escape ... hoặc, tốt hơn, {% autoescape on %} để bạn không vô tình bỏ lỡ một mẫu.

+0

Cảm ơn thông tin tuyệt vời, đây là loại điều tôi đã tìm kiếm. Có những lỗ hổng nào khác cần được cân nhắc không? – Ocimus

+2

Vâng, chắc chắn, phụ thuộc vào những gì bạn đang làm, phải không? Nếu bạn cho phép mọi người gửi liên kết, bạn nên kiểm tra URL là một sơ đồ được biết đến tốt như 'http' chứ không phải' javascript' ... nếu bạn cho phép tải lên tệp bạn nên lưu chúng dưới tên an toàn và không phải do người dùng gửi ... không phân phối tệp do người dùng gửi từ tên máy chủ chính của bạn ... không sử dụng dữ liệu do người dùng gửi trong lệnh 'system' hoặc' eval' ... etc etc – bobince

+3

Trong thực tế , Các tấn công GQL injection gần như không thể, ngay cả khi mã của bạn khá khủng khiếp, vì kẻ tấn công sẽ bị giới hạn thêm các tiêu chí bổ sung vào câu lệnh SELECT. Đó không phải là để nói rằng bạn không nên sử dụng tham số ràng buộc, nhưng nó không phải là một vấn đề nghiêm trọng như với SQL. – geoffspear

-2

Nói chung, có những vấn đề tương tự. Ngoài ra google "biết" mã của bạn và có thể trong lý thuyết theo dõi bất cứ điều gì mã đang làm. Do đó rất khó nếu bạn muốn ngăn không cho họ đọc dữ liệu của bạn. Nhưng tôi không tin rằng họ có thời gian và nguồn lực để theo dõi mã và dữ liệu của bạn đóng.

+0

Tôi không thực sự quan tâm đến việc Google 'biết' mã của tôi hoặc đọc dữ liệu của tôi, nếu đó là câu hỏi của tôi dường như giao tiếp thì tôi xin lỗi. Tôi quan tâm nhiều hơn đến các vấn đề bảo mật có thể khiến ứng dụng của tôi mở để khai thác những thứ như XSS và SQL Injection, cụ thể là các lỗ hổng bảo mật duy nhất đối với Google App Engine. Bạn có bất kỳ mẹo nào về cách tôi có thể sửa đổi (các) câu hỏi của mình để giao tiếp tốt hơn không? Cảm ơn câu trả lời bất kể. – Ocimus

+2

Tôi muốn nói rằng không có rủi ro bảo mật đặc biệt nào đối với công cụ ứng dụng Google mà bạn có thể chống lại. Google chỉ lưu trữ mã của bạn giống như bất kỳ Máy chủ lưu trữ nào khác sẽ thực hiện. Nếu họ có một lỗ hổng trong hệ thống của họ, bạn không thể làm bất cứ điều gì về nó. – kasten

+0

Được rồi, tôi hiểu ngay bây giờ. – Ocimus

Các vấn đề liên quan