Hướng dẫn which method is more secure to send data in php? - Phương pháp nào an toàn hơn để gửi dữ liệu trong php?
Tôi cần chuyển một vài giá trị bằng biểu mẫu Phương thức POST cho trang web của bộ xử lý thanh toán khác. Các giá trị đó là một cái gì đó giống như các mã thông báo được tạo trên tài khoản của tôi và hiện tôi đang sử dụng biểu mẫu cơ bản với loại đầu vào = "ẩn" trên các giá trị đó. Và cũng có một biến được mã hóa bằng SHA1. Nhưng những gì tôi quan tâm là bảo mật của nó, bởi vì loại = "ẩn", có thể được nhìn thấy trong HTML. Cách chính xác để làm điều này trong trường hợp này và nói chung tôi nên sử dụng những gì? Tôi rất mới với điều này, vì vậy mọi sự giúp đỡ sẽ được đánh giá cao. Show
Đoạn mã:
hỏi ngày 29 tháng 4 năm 2017 lúc 4:25Apr 29, 2017 at 4:25
Nếu bạn muốn bảo vệ dữ liệu được truyền khỏi mắt, thì câu trả lời sẽ không được tìm thấy trong PHP hoặc HTML, nhưng trong chính máy chủ web. Theo mặc định, dữ liệu giữa trình duyệt và máy chủ nằm trong văn bản đơn giản. Ngay cả dữ liệu nhị phân được mã hóa thành văn bản đơn giản và được giải mã ở đầu kia. Cách duy nhất để bảo mật truyền của bạn là sử dụng HTTPS làm giao thức của bạn. Điều này đòi hỏi những điều sau đây:
Giao tiếp được mã hóa giữa máy chủ và trình duyệt bằng phương thức mã hóa biến làm cho việc đánh chặn chủ yếu là không thực tế và lãng phí thời gian. (Tất nhiên không có đảm bảo tuyệt đối). Liên quan đến phần còn lại của mã hóa của bạn, chỉ cần tiếp tục và làm điều đó bình thường. Sau khi thiết lập, mã hóa là tự động và trong suốt. Đã trả lời ngày 29 tháng 4 năm 2017 lúc 4:39Apr 29, 2017 at 4:39
ManngomanngoManngo 12.2k9 Huy hiệu vàng72 Huy hiệu bạc92 Huy hiệu Đồng9 gold badges72 silver badges92 bronze badges Nếu bạn chỉ muốn ẩn dữ liệu của mình với người dùng, bạn có thể sử dụng các phiên trong PHP. Nếu bạn cũng muốn bảo mật dữ liệu của mình từ ISP thì hãy đọc câu trả lời của @manngo. Anh ấy giải thích mọi thứ. Đã trả lời ngày 29 tháng 4 năm 2017 lúc 4:43Apr 29, 2017 at 4:43
Trong bài viết này, chúng tôi sẽ đề cập đến hai phương thức yêu cầu: các phương thức GET và POST, để gửi và nhận dữ liệu từ biểu mẫu HTML bằng PHP. Ngoài ra, chúng tôi sẽ kiểm tra các vấn đề phổ biến nhất liên quan đến bảo mật thông tin, chẳng hạn như kịch bản chéo trang (XSS) và tiêm SQL, và cách giải quyết chúng với sự khử trùng đầy đủ. Hãy bắt đầu với lý thuyết: những gì nhận được và đăng yêu cầu, và chúng khác nhau như thế nào? - Nếu bạn muốn, bạn có thể bỏ qua phần tiếp theo, nơi chúng tôi sẽ bắt đầu với việc thực hành. Hiểu các phương pháp GET và POSTGiao thức chuyển siêu văn bản (HTTP) được phát triển như một giao thức để phục vụ việc truyền tài liệu và hoạt động như một trung gian giữa các trình duyệt Internet và máy chủ web. Bạn đã quen với việc đọc nó trong các địa chỉ của các trang web - cũng như anh trai của nó, HTTPS, một phiên bản được mã hóa an toàn hơn (do đó là S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S). Nói cách khác, HTTP là một giao thức phục vụ như một cây cầu trên mạng: nó thu thập một yêu cầu từ trình duyệt Internet; gửi nó đến máy chủ; chờ đợi một câu trả lời; Và cuối cùng, nó trả lại thông tin mới cho trình duyệt. Nói chung, các yêu cầu này giữ một số siêu dữ liệu trong tiêu đề của họ, có chứa các thông báo được sử dụng để thực hiện một số hành vi nhất định trên máy khách hoặc trên máy chủ. Ngoài ra, các yêu cầu HTTP có thể giả sử các mô hình khác nhau. Các loại yêu cầu HTTP được sử dụng nhiều nhất là nhận và đăng, nhưng có các loại khác trong đặc điểm kỹ thuật của chúng, chẳng hạn như 0, 1 và 2. Đối với các mục đích của bài viết này, chúng tôi sẽ chỉ tập trung vào hai phổ biến nhất.Yêu cầu nhậnPhương thức Get yêu cầu được sử dụng khi bạn muốn lấy dữ liệu từ một nguồn hoặc tài nguyên cụ thể. Nó chỉ nên được sử dụng để truy xuất dữ liệu, vì chuỗi truy vấn của nó được gửi và hiển thị tại URL, ví dụ: 3.Khi chúng tôi chèn URL này vào trình duyệt, chúng tôi đang yêu cầu máy chủ YouTube cho một tài nguyên cụ thể: để lấy dữ liệu từ video 4 được xác định là 5. Ngay khi máy chủ trả về yêu cầu, giao thức HTTP sẽ cho trình duyệt biết cách hiển thị video, trong ví dụ này, video chính thức cho bài hát Boh Bohemian Rhapsody, bởi ban nhạc của Nữ hoàng Anh.Lưu ý rằng trong ví dụ của chúng tôi, tham số thứ hai của yêu cầu GET, tham số 6, thông báo thời gian bắt đầu mà chúng tôi mong đợi trong phản hồi của chúng tôi, trong trường hợp này, từ 3 phút và 5S. Các tham số 4 và 6 được phân tách bằng ký tự 9, chỉ ra giao thức HTTP trong đó các cặp khóa-khóa-giá trị của các tham số này bắt đầu và kết thúc. Vì vậy, máy chủ biết chính xác rằng bạn tìm kiếm video 0 tại thời điểm 1.Nhận các yêu cầu thường bị giới hạn về chiều dài - đối với hầu hết các trình duyệt, nó lên tới 8 kb hoặc 8192 byte trong URI - và vì chúng chỉ phục vụ để yêu cầu dữ liệu, chúng không thể sửa đổi nó. Ngoài ra, chúng có thể được lưu trữ trong bộ đệm, trong lịch sử của trình duyệt và cả trong các dấu trang. Đó là lý do tại sao bạn không bao giờ nên sử dụng nó để gửi dữ liệu nhạy cảm, chẳng hạn như số an sinh xã hội và mật khẩu người dùng.never use it to send sensitive data, such as Social Security Numbers and user passwords.
Yêu cầu bài viếtPhương thức yêu cầu POST được sử dụng để gửi dữ liệu đến máy chủ, để cập nhật hoặc tạo tài nguyên mới. Không giống như phương thức GET, phương thức POST không hiển thị thông tin tại địa chỉ URL. Trong trường hợp này, dữ liệu được truyền trong thân yêu cầu HTTP, như sau:
Trong ví dụ này, chúng tôi đang thông báo cho máy chủ 2 rằng chúng tôi sẽ thực hiện yêu cầu phương thức 3 đến địa chỉ 4, sử dụng các thông số kỹ thuật của giao thức 5. Chúng tôi cũng chỉ ra rằng có 42 thông tin ký tự ( 6), theo định dạng nội dung 7 tiêu chuẩn, có giá trị là 8. Cuối cùng, thông tin của chúng tôi nằm ở dòng dưới cùng, chứa 3 tham số: 9, 0 và 4.
Giả sử máy chủ YouTube đã nhận ra yêu cầu của chúng tôi và địa chỉ này là hợp lệ. Trong ví dụ của chúng tôi, video được thông báo mà chúng tôi nhận được trước đó, sẽ được thêm vào danh sách phát 2 của người dùng được xác định là 3.Lưu ý rằng đây là một yêu cầu một lần, không có khả năng được lặp lại. Theo quy định, phương thức POST, không giống như GET, không được lưu trữ trong bộ đệm hoặc trong lịch sử trình duyệt của khách hàng, cũng như không thể lưu trong các dấu trang. Các yêu cầu POST không có hạn chế về kích thước của tin nhắn, cho phép chúng tôi gửi các bài viết hoàn chỉnh, chẳng hạn như bài viết này, thông qua mẫu HTML điện tử chẳng hạn. Ngoài ra, phương pháp POST hỗ trợ nhiều loại 7, bao gồm các tài liệu nhị phân, chuỗi và số.
Tạo các biểu mẫu với HTML và PHPBây giờ chúng tôi đã hiểu cách các phương thức GET và POST hoạt động trong lý thuyết, chúng ta hãy đi đến các thực tiễn: Hãy tạo biểu mẫu HTML và để gửi và nhận thông tin bằng PHP.
Chèn biểu mẫu trên trangBước đầu tiên để tạo trang web của chúng tôi là thông báo cấu trúc của phần tử 5 sẽ chứa các trường nơi người dùng nhập dữ liệu, như thế này:
Trong đoạn này, chúng tôi đang sử dụng phương thức GET, được xác định trong 6, để gửi thông tin sẽ được chèn vào biểu mẫu, tên được xác định trong 7, đến trang đích ( 8).Chèn các trường vào biểu mẫuBước tiếp theo là chèn các trường hoặc 9 vào biểu mẫu của chúng tôi, nơi người dùng có thể nhập các giá trị. Hãy cập nhật tệp nguồn của chúng tôi như thế này:
Chúng tôi đã chèn 3 trường, được xác định bởi thẻ HTML 0 và cũng là 1 nút gửi dữ liệu của biểu mẫu, sử dụng 1.Chúng tôi cũng thêm nhãn vào các trường văn bản, sử dụng các thẻ 2. Lưu ý rằng mỗi giá trị trên các thuộc tính 3, trên mỗi phần tử 4 tương ứng với thuộc tính 5 của một trường 9, như thế này: 7 đề cập cụ thể đến trường chứa thuộc tính 8 tương ứng và ngược lại.
Cuối cùng, thuộc tính 1 trong mỗi trường 0 sẽ được sử dụng để thu được các giá trị được người dùng chèn vào trường tương ứng khi chúng ta chuyển sang PHP.Kết quả cuối cùng, được hiển thị trong trình duyệt của máy khách, sẽ trông như thế này: Đọc dữ liệu với PHPSau khi hoàn thành biểu mẫu HTML của chúng tôi, chúng tôi có thể chuyển sang bước tiếp theo. Hãy xác định các yếu tố của trang đích bằng PHP. Mã nguồn bên dưới, được chèn vào tệp 3, sẽ được thực hiện bởi PHP ngay khi người dùng gửi dữ liệu biểu mẫu mà chúng tôi đã tạo trước đó.
Lưu ý rằng chúng tôi sử dụng biến SuperGlobal 4 để có được các giá trị được người dùng chèn vào, được truyền bằng giao thức HTTP. Đối với mỗi trường 0 mà trước đây chúng tôi đã tạo trên biểu mẫu, thuộc tính 1 tương ứng của nó phải được thông báo trong biến SuperGlobal. Ví dụ: trường 0 hiển thị thuộc tính 8 có thể được tìm thấy trong PHP bằng cách sử dụng 9.PHP có một số biến SuperGlobals bản địa, chẳng hạn như 5 của chúng tôi.according to the HTTP request method that we are using for data transmission, so it must correspond to what been
defined in the https:// 3 attribute of our 5 element.
Sau đó, chúng tôi tách các chuỗi và các biến trong PHP với ký tự 📝 Học bằng cách làmBạn có nhận thấy rằng địa chỉ URL trên trang 3 hiển thị các giá trị được nhập trong trang nguồn không?Kiểm tra số 1: Viết lại mã nguồn của biểu mẫu chúng tôi đã mã hóa, bằng cách sử dụng một phương thức yêu cầu khác, để thông tin vẫn an toàn khỏi việc đọc của người nghe lén và những người trái phép. Sau khi bạn hoàn thành, bạn có thể kiểm tra câu trả lời cuối cùng. Rewrite the source code of the form we coded, using another requisition method, so that the information stays safe from reading by eavesdroppers and unauthorized people. After you finish, you can check the final answer. Tăng bảo mật hình thức HTMLHình thức HTML của chúng tôi cuối cùng đã được thực hiện! Tuy nhiên, chúng tôi có thể tăng tính bảo mật của trang của chúng tôi, bảo vệ việc đọc thông tin trên PHP. Đây là bước cuối cùng của chúng tôi. Chúng tôi sẽ thêm một lớp bảo mật bổ sung, mặc dù cơ bản, để ngăn PHP thực thi các lệnh tại thời điểm nó nhận và hiển thị các giá trị được báo cáo bởi máy khách.
Kỹ thuật lọc và biến đổi các giá trị được người dùng nhập vào thành các chuỗi đơn giản hơn được gọi là vệ sinh. Theo mặc định, PHP có một tập hợp các chức năng gốc giúp chúng tôi ở bước này, chẳng hạn như sau:sanitization. By default, PHP has a collection of native functions that helps us on this step, such as the following:
Khi chúng tôi sử dụng quá trình vệ sinh đầy đủ, ngay khi máy chủ nhận được thông tin không chính xác - ví dụ:
Hãy chỉnh sửa mã nguồn của trang của chúng tôi, bằng cách thêm một trong các chức năng vệ sinh này. Mã cuối cùng của chúng tôi sẽ trông như thế này:
Kết quả cuối cùng, được hiển thị trong trình duyệt, sẽ trông giống như hình dưới đây: 📝 Học bằng cách làmBạn đã bao giờ nhận thấy rằng phần lớn các trang web và công cụ tìm kiếm sử dụng tham số Kiểm tra số 2: Tạo biểu mẫu tìm kiếm, sử dụng HTML và PHP, chứa ít nhất 1 trường văn bản và 1 nút để gửi dữ liệu, để URL địa chỉ trên trang đích hiển thị tham số Sự kết luậnVì vậy, chúng tôi đã hoàn thành! Chúng tôi đã thực hiện biểu mẫu điện tử của chúng tôi trong HTML có khả năng truyền dữ liệu qua các phương thức yêu cầu HTTP, trong trường hợp này, nhận hoặc đăng - và chúng tôi cũng hiểu cách chúng hoạt động - và gửi chúng đến trang đích được viết bằng PHP. Sau đó, nó nhận được, xử lý dữ liệu và hiển thị thông tin trên màn hình của người dùng. Ngoài ra, chúng tôi đã vệ sinh các giá trị được người dùng thông báo để tránh các vấn đề nghiêm trọng về bảo mật thông tin. Các bước tiếp theo 🚶 🚶Bảo mật Internet không bao giờ là quá nhiều, vì vậy luôn có một cái gì đó để học và áp dụng nhiều hơn. Để xây dựng các ứng dụng an toàn hơn, hãy chắc chắn theo dõi bài viết tiếp theo về loạt bài này và đọc chủ đề bảo mật trong hướng dẫn sử dụng PHP. Nếu bạn có bất kỳ câu hỏi hoặc đề xuất nào về cách xây dựng các ứng dụng an toàn hơn bằng PHP, hãy chia sẻ nó trong các bình luận. 📣 Người giới thiệu. . . . . . . . Phương pháp nào an toàn hơn Gửi dữ liệu đến máy chủ?SFTP hoặc FTP an toàn là một trong những cách an toàn nhất để truyền dữ liệu trực tuyến. Bằng cách sử dụng các giao thức này, dữ liệu chỉ có thể được chuyển sau khi nhập tên người dùng và mật khẩu. Để sử dụng SFTP, bạn cần có quyền truy cập vào một máy chủ, có thể được mua hoặc thuê. is one of the safest ways to transfer data online. By using these protocols, data can be transferred only after entering a username and a password. In order to use SFTP, you need to have access to a server, which can be either bought or rented.
Phương pháp hình thức nào an toàn nhất?Bảo vệ.Sinh trắc học rất nhạy cảm và gần như không thể giả mạo sinh trắc học của ai đó.Tuy nhiên, nếu một sinh trắc học bị đánh cắp, nó không thể thay đổi.Do đó, sinh trắc học có thể là một phương pháp xác thực rất an toàn, miễn là dữ liệu sinh trắc học được lưu trữ an toàn.
Cái nào an toàn hơn hoặc bài đăng?Nhận ít an toàn hơn bài đăng vì dữ liệu đã gửi là một phần của URL.Bài đăng an toàn hơn một chút so với GET vì các tham số được lưu trữ không trong lịch sử trình duyệt cũng như trong nhật ký máy chủ web. because sent data is part of the URL. POST is a little safer than GET because the parameters are stored neither in the browser history nor in the web server logs.
Cách an toàn nhất để truyền dữ liệu riêng tư là gì?Cách truyền dữ liệu an toàn nhất là gì?Cách tốt nhất để chuyển dữ liệu một cách an toàn là thông qua việc sử dụng khóa riêng.Đây là một cách mà khi bạn gửi tin nhắn, nó được mã hóa và giải mã bằng cách sử dụng một thuật toán cụ thể chỉ bạn và người nhận biết.through the use of a private key. This is a way that, when you send a message, it's encrypted and decrypted using a specific algorithm only you and the receiver know. |