2010-03-18 22 views
13

Thực tiễn tốt nhất để bảo vệ trang web coldfusion khỏi người dùng độc hại là gì? (bao gồm, nhưng không giới hạn, các cuộc tấn công tiêm sql)Coldfusion Security

cfqueryparam có đủ không?

+1

Điều gì không mang tính xây dựng về điều này? đóng chuỗi này không phải là IMHO mang tính xây dựng ... #moderatorfailagain Đó là một câu hỏi hợp lệ, trừ khi bạn là một người da nâu Ruby. – Dawesi

Trả lời

11

Tôi sử dụng một portcullis đã sửa đổi và lọc tất cả các phạm vi var đến (URL, FORM, COOKIE) onRequestStart. http://portcullis.riaforge.org/

1

tôi sẽ nói thực hành tốt nhất cho ColdFusion tương tự như cho các ứng dụng web lập trình bằng ngôn ngữ nào.

Gần đây tôi đã đọc Essential PHP Security Chris Shiflett và phần lớn các vấn đề được thảo luận cũng ảnh hưởng đến Coldfusion, mặc dù cú pháp để xử lý chúng có thể khác đôi chút. Tôi hy vọng có những cuốn sách bất khả tri về ngôn ngữ khác (có thể tốt hơn) có chứa các nguyên tắc có thể dễ dàng thay đổi để sử dụng trong ColdFusion.

1

Mặc dù sử dụng giải pháp dựng sẵn sẽ hoạt động, tôi khuyên bạn nên biết tất cả các vấn đề có thể phải được bảo vệ. Kiểm tra Hack Proofing ColdFusion tại Amazon.

1

Không bao giờ tin tưởng cho khách hàng.

Tập hợp "quên và quên" cụ thể của Coldfusion là tuân thủ nguyên tắc quản trị viên máy chủ được lưu ý ở trên, giữ cho máy chủ luôn cập nhật và theo ColdFusion trên twitter để tìm hiểu về bất kỳ vấn đề mới nào ngay lập tức.

Để bảo mật ứng dụng, phổ biến trên tất cả các ngôn ngữ, bạn nên xác thực mọi thông tin chạm vào máy chủ của bạn từ ứng dụng khách. Biểu mẫu là các khu vực rõ ràng của kiểm soát chặt chẽ, nhưng đừng quên các tham số URL mà bạn có thể sử dụng để quản lý hoặc kiểm soát trạng thái ứng dụng. Một cái gì đó như & startRow = 10 & thẻ = bảo mật mà không phải là "nghĩa vụ" được xúc động bởi người dùng đầu vào của người dùng. Ngay cả khi ứng dụng của bạn có thể không bao giờ ngắt với dữ liệu không hợp lệ, bạn có thể không biết cách dữ liệu đó sẽ được sử dụng trong tương lai. Việc xác thực có thể đơn giản như việc đảm bảo rằng ai đó không nhập tên dài 100 ký tự và không chứa các ký tự lập trình hoặc đảm bảo rằng & startRow luôn là một số. Đây là những điều nhỏ mà các nhà phát triển ứng dụng đôi khi bỏ qua vì mọi thứ đều hoạt động OK miễn là bạn đang sử dụng phần mềm như mong đợi.

Tôi tin rằng bạn có thể xem xét việc tấn công Sony Playstation như một ví dụ. Thật không may, họ không mong đợi ai đó hack máy khách (console playstation) và thao tác với phần mềm PlayStation console để hack máy chủ. Máy chủ tin cậy máy khách.

Không bao giờ tin tưởng khách hàng.

0

CfQueryParam là rất quan trọng, nhưng không đủ gần.

Có một giải pháp đóng hộp mà chúng tôi sử dụng tại nơi làm việc của mình: http://foundeo.com/security/. Nó bao gồm hầu hết các căn cứ. Và ngay cả khi bạn không muốn mua nó, bạn có thể xem xét tính năng của nó và có ý tưởng về những điều bạn nên cân nhắc.

1

Một nơi tuyệt vời để tìm hiểu về an ninh (và tất cả các loại chủ đề khác) là để kiểm tra danh sách khổng lồ Charlie Arehart của bài thuyết trình nhóm người sử dụng ghi: http://www.carehart.org/ugtv/