2010-02-10 42 views
23

Tôi sắp kế thừa và làm việc trên một trang web bán lẻ doanh nghiệp nhỏ được thiết kế rất kém. Trong số những thứ khác, mối quan tâm lớn nhất là xử lý thẻ tín dụng hiện tại.Lưu trữ thẻ tín dụng trực tuyến?

Hiện tại, chủ sở hữu truy xuất thông tin thẻ tín dụng (tên, số, CVV2 và ngày hết hạn) từ biểu mẫu đặt hàng trực tuyến và lưu tất cả thông tin đó trong văn bản thuần trong cơ sở dữ liệu MySQL. Sau đó, thông báo sẽ được gửi tới email của anh ấy mà ai đó đã đặt hàng. Sau đó, anh ta có một trang quản trị ở mặt sau mà anh ta xem các đơn đặt hàng và thông tin thẻ tín dụng mà anh ta sử dụng để xử lý ngoại tuyến với thương gia của mình.

Sau khi truy xuất thông tin từ trang back-end, số thẻ tín dụng và CVV2 bị xóa ngay lập tức (tập lệnh PHP tự động được gọi). Thông tin cũng bị xóa nếu trang đó không được truy cập trong vòng 7 ngày. Vì vậy, có một tiềm năng cho tất cả các thông tin được trong cơ sở dữ liệu trong văn bản thuần trong bảy ngày trước khi xử lý giao dịch.

Điều này có vẻ không phải là thiết kế tốt và có thể là bất hợp pháp. Nếu nó là bất hợp pháp, tôi sẽ phải phá vỡ điều này với anh ta, bởi vì anh ta vẫn chưa nhận ra điều đó.

Câu hỏi của tôi: Ngoài việc không an toàn, điều này là bất hợp pháp hoặc vi phạm điều khoản sử dụng (PCI DSS)? Và, nếu vậy, làm thế nào tôi có thể chứng minh điều đó cho anh ta để anh ấy sẽ cho phép tôi thay đổi cách của anh ấy (rõ ràng, tôi không muốn đặt tay mình vào thứ gì đó bất hợp pháp. Ngoài ra, đôi khi từ ngữ của điều khoản sử dụng có thể có vẻ chủ quan)? Cuối cùng, các tùy chọn tốt nhất để khắc phục sự cố này (người bán trực tuyến của bên thứ ba, trở thành tuân thủ PCI DSS, hoặc điều gì khác) là gì?

+1

Bạn ở quốc gia nào? –

+0

Tôi đang ở Mỹ. –

+4

Tôi đang bỏ phiếu để đóng câu hỏi này là chủ đề không chính vì đây là câu hỏi pháp lý, không phải là câu hỏi lập trình. – durron597

Trả lời

21

Đó là vi phạm PCI DSS. Không chỉ là bạn lưu trữ thông tin mà bạn không được phép lưu trữ (CVV) nhưng bạn không mã hóa số thẻ tín dụng (cũng là một vi phạm).

Thậm chí tệ hơn là vi phạm nguyên tắc Visa và MasterCard cho biết tất cả giao dịch trực tuyến phải được xử lý bằng thiết bị tuân thủ ECI hoặc phần mềm Đơn đặt hàng Internet phải có tài khoản người bán riêng. Thiết bị đầu cuối thẻ tín dụng của họ chắc chắn không tuân thủ ECI như không có. Họ cần phải có được một tài khoản thương gia mới và sử dụng một cổng thanh toán như Authorize.Net để xử lý các đơn đặt hàng này.

Sửa

Kể từ khi tôi nghi ngờ về chủ sở hữu webbsite sẽ thực sự bận tâm để có được một tài khoản thương gia mới hoặc thực hiện một cổng thanh toán đặt cược tốt nhất của bạn là sử dụng hai mã hóa cách để lưu trữ thông tin này. Sau đó, đảm bảo rằng trang họ sử dụng để truy xuất thông tin thẻ tín dụng được mã hóa (SSL cert) để thông tin được bảo mật từ đầu cuối đến cuối.

Tôi khuyên bạn nên nhận tài khoản người bán trên Internet và sử dụng cổng thanh toán như Authorize.Net. Bên cạnh việc tuân thủ PCI và ECI và chỉ là cách thông minh để đi, tiềm năng cho doanh nghiệp không chỉ mất tài khoản thương gia mà còn bị liệt vào danh sách đen và bị cấm không bao giờ có tài khoản thương gia thực sự nữa là rất cao. Tất cả phải mất là một khoản bồi hoàn cho nhà cung cấp tài khoản thương gia của họ để nhận ra những gì họ đang làm và cho những rắc rối để bắt đầu.

+0

Việc tuân thủ ECI có liên quan đến tình huống này không? Anh ta không giao dịch trực tuyến, nhưng chỉ nhận được thông tin trực tuyến để thực hiện các giao dịch ngoại tuyến. Nó giống như nhận thông tin thẻ tín dụng qua điện thoại để thực hiện giao dịch.Và/Hoặc bạn đang nói rằng điều này đòi hỏi một tài khoản thương gia khác? –

+2

Việc tuân thủ ECI là một vấn đề vì đơn đặt hàng bắt nguồn từ trang web của họ. Nếu nó có nguồn gốc qua ECI điện thoại sẽ không được áp dụng. Về cơ bản nó không phải là cách bạn xử lý đơn đặt hàng nhưng nó bắt nguồn từ đâu. Nó cũng yêu cầu một tài khoản người bán khác vì các đơn đặt hàng có nguồn gốc trên Internet phải tách biệt với các đơn hàng không phải là Internet. Điều này chủ yếu là do các vấn đề về bồi hoàn. –

+0

Điều đó có ý nghĩa. Cảm ơn bạn. –

0

Đó chắc chắn là vi phạm quy tắc PCI. Tuy nhiên, nó không phải là khó khăn để thêm mã hóa cho các dữ liệu được lưu trữ, đặc biệt là nếu nó hiếm hoi một con người sẽ phải nhìn vào nó.

Đã từng làm việc cho công ty xử lý giao dịch thẻ tín dụng của bên thứ ba, tôi khuyên bạn nên sử dụng nó nếu hệ thống của họ xấu. Tuy nhiên, bạn vẫn sẽ cần phải mã hóa thông tin đó, hoặc không lưu trữ thông tin sau khi nó được gửi đến TPP. TPP thực sự làm việc cho người bán, vì vậy họ có thể giúp bạn với bất kỳ vấn đề tuân thủ nào và giúp bạn nhận được tỷ giá trao đổi tốt nhất.

2

Có rất nhiều nhà cung cấp thanh toán bên thứ ba cho bạn sẽ giải quyết mọi vấn đề về bảo mật và tuân thủ.

Đối với bất kỳ doanh nghiệp vừa và nhỏ nào, đây là một chức năng chắc chắn phải được khoán ngoài cho những người có chuyên môn.

2

Sử dụng cổng xử lý thẻ tín dụng của bên thứ 3 sẽ làm giảm nhu cầu lưu trữ thông tin tín dụng trên máy chủ của khách hàng - thông tin được POST được chuyển đến cổng xử lý trả về id giao dịch có thể được sử dụng để lưu giữ hồ sơ bởi khách hàng của bạn.

Cổng thanh toán bằng thẻ tín dụng được cung cấp bởi các công ty như Authorize.net, LinkPoint Central - thậm chí PayPal đang tham gia trò chơi. Tất cả các cổng chính đều có sẵn mã để tích hợp một giỏ mua hàng với hầu hết các nền tảng lập trình web phổ biến (.NET, PHP, Java, v.v.). Ngoài ra, hầu hết các giỏ hàng lớn đều hỗ trợ các cổng chính ra khỏi hộp hoặc ít nhất có các mô-đun có thể cài đặt cho hầu hết các cổng.

Vì vậy, khách hàng của bạn sẽ nhận được thiết lập cổng thanh toán qua internet và bạn nên tích hợp mã hiện có của họ với cổng.

1

Bảo vệ đúng dữ liệu thanh toán là một chủ đề phức tạp. Ngay cả các công ty rất lớn đôi khi có số lượng lớn thẻ tín dụng bị đánh cắp từ hệ thống của họ.

Tối thiểu, đây là các bước để xem xét:

  • Đảm bảo mẫu đơn đặt hàng trực tuyến đang sử dụng HTTPS để thu thập dữ liệu.
  • Nếu DB và máy chủ web là các hộp khác nhau, hãy đảm bảo đường dẫn an toàn giữa chúng.
  • Mã hóa dữ liệu thanh toán trong DB. MySQL Reference.
  • Đảm bảo kiểm soát quyền truy cập mạnh mẽ vào trang web back-end (có thể truy cập trực tiếp đến thế giới bên ngoài không? Có yêu cầu mật khẩu mạnh không? Có phải HTTPS không?)
  • Đảm bảo không có nhật ký (ví dụ: nhật ký gỡ lỗi) cuối cùng ghi thông tin thanh toán vào hệ thống tệp.
4

Đây là vi phạm nghiêm trọng về quy tắc PCI. Bạn có thể lấy các tài liệu ở đây: https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml Sẽ rất thông minh khi chuyển sang bên thứ ba như Google Checkout hoặc một thứ tương tự. Việc tuân thủ PCI là một nhức đầu lớn và liên quan đến đánh giá hàng năm (có thể tự đánh giá), có thể bao gồm kiểm tra thâm nhập, v.v. Nếu bạn thực sự kiểm tra nó, có lẽ anh ta không cần truy cập vào thông tin thẻ tín dụng, ID giao dịch. Bạn không chỉ cần mã hóa dữ liệu, bạn phải có một sơ đồ phức tạp để bảo vệ các khóa mã hóa. Điều này là lớn hơn nhiều so với những gì một doanh nghiệp nhỏ muốn nhận được vào. Một số lời khuyên trên nghe có vẻ tốt, nhưng nó không đáp ứng được đặc điểm kỹ thuật của PCI. Đọc các tài liệu và bạn sẽ nhanh chóng thấy nó là một cam kết lớn. Tôi hiện đang hỗ trợ một hệ thống tuân thủ PCI trong nhà và phải dành nhiều nỗ lực để đạt được tiêu chuẩn. Chúng tôi cũng phải thực hiện một số thay đổi về mạng. Sẽ rẻ hơn cho doanh nghiệp để chuyển đổi sang bên thứ ba.

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