Làm thế nào để xác định các tiện ích mở rộng mà điện thoại trên nhà của gia đình?


10

Có cách nào để xác định mã gửi yêu cầu HTTP đến máy chủ từ xa trong nền không?

Tôi nhận thấy rằng khi tôi nhận được sự tiếp nhận không chính xác trên máy phát triển của mình, nhiều cửa hàng mất nhiều thời gian để tải, thậm chí chạy trên localhost.

Tôi có một cảm giác là bởi vì một số máy chủ từ xa mất nhiều thời gian để phản hồi do kết nối không chính xác của tôi. Tôi muốn xác định các yêu cầu này và xóa chúng, vì tôi sợ chúng cũng có thể làm chậm cài đặt trực tiếp, ví dụ nếu máy chủ bên ngoài bị chậm hoặc chậm ...


1
Vui lòng lưu ý / kiểm tra xem bạn có được phép loại bỏ các cuộc gọi này không. Bạn có thể được phép, nhưng tôi đã thấy các trường hợp đó là một trong những yêu cầu mở rộng.
David Mulder

Câu trả lời:


8

Chúng tôi làm điều đó với chức năng dòng lệnh (Bash) trên bất kỳ máy chủ web tương ứng nào trong ngăn xếp,

monitor_outbound ()
{
  tcpflow -p -c -i bond0 '( port 80 or port 443 ) and ' $(ip addr list | grep -Eoh "([0-9]{1,3}\.){3}[0-9]+" | sort -u | awk '{print "src host " $1 " or"}' | tr '\n' ' ' | sed -E 's# or $##g') | grep --line-buffered -oE '(GET|POST|HEAD) .* HTTP/1.[01]|Host: .*' | sed --unbuffered "s/^/$(date "+%b %d %T"): /g"
}

Nói tóm lại, bạn có thể tận dụng các phương thức CURL / fopen trong Magento (nhưng giả sử họ bận tâm sử dụng các phương thức cốt lõi để làm điều đó), thường xuyên hơn, bạn sẽ thấy các mô-đun tùy chỉnh sử dụng các phương thức mở file_get_contents()hoặc curlphương thức của họ .

Bạn có thể thực hiện kiểm tra nhanh một cách đơn giản grep(giả sử mã không bị xáo trộn)

grep -ilrE "curl|file_get_contents|fopen|Zend_Http_Client" app/code/local app/code/community

Và như @Marius đã nói dưới đây, hãy xem các mô-đun bị che khuất, có thể ẩn phương thức của chúng trong các base64chuỗi được mã hóa

grep -ilrE "eval[\t ]+\(" app/code/local app/code/community

Vấn đề duy nhất với phương pháp CLI ở trên, trong khi cực kỳ hiệu quả đối với các yêu cầu HTTP gửi đi, HTTPS vô dụng (với lưu lượng được mã hóa), thứ tốt nhất bạn sẽ nhận được là IP / tên máy chủ, nhưng không có gì hơn.


2
Bạn cũng có thể muốn tìm kiếm evalvà xem những gì xảy ra trong các evalchức năng đó. Hầu hết các tiện ích mở rộng mà điện thoại gia đình sử dụng evalchỉ để bạn không dễ dàng tìm thấy số điện thoại của họ.
Marius

2
Được cập nhật để bao gồm một regex cho evalquá
Ben Lessani - Sonassi

1

Khó ai có thể trả lời - nếu một số tiện ích mở rộng của bên thứ ba đang gửi yêu cầu đến máy chủ từ xa thì điều này có thể xảy ra theo vô số cách tùy thuộc vào cách yêu cầu được tạo. Tùy chọn tốt nhất của bạn để tìm các trường hợp như vậy (mặc dù có khả năng kéo dài) là thực sự nghiên cứu mã mở rộng, không có bất kỳ phương pháp mền nào để xác định những thứ như thế này.

Không biết bạn đã cài đặt tiện ích mở rộng nào hoặc cách chúng được xây dựng, tôi sẽ nói thêm rằng nếu tiện ích mở rộng được phát triển tốt, mọi giao tiếp như vậy sẽ được thực hiện theo cách nào đó sẽ không bao giờ ảnh hưởng đến hiệu suất của giao diện.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.