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 curl
phươ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 base64
chuỗ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.