백그라운드에서 원격 서버로 HTTP 요청을 보내는 코드를 식별하는 방법이 있습니까?
개발 시스템에서 드문 드문 리셉션을 받았을 때 많은 상점에서 로컬 호스트를 실행하는 데 시간이 오래 걸린다는 것을 알았습니다.
내 원격 연결로 인해 일부 원격 서버가 응답하는 데 시간이 오래 걸리기 때문입니다. 예를 들어 외부 서버가 다운되거나 느리면 라이브 설치 속도가 느려질 수 있기 때문에 이러한 요청을 식별하고 제거하고 싶습니다.
백그라운드에서 원격 서버로 HTTP 요청을 보내는 코드를 식별하는 방법이 있습니까?
개발 시스템에서 드문 드문 리셉션을 받았을 때 많은 상점에서 로컬 호스트를 실행하는 데 시간이 오래 걸린다는 것을 알았습니다.
내 원격 연결로 인해 일부 원격 서버가 응답하는 데 시간이 오래 걸리기 때문입니다. 예를 들어 외부 서버가 다운되거나 느리면 라이브 설치 속도가 느려질 수 있기 때문에 이러한 요청을 식별하고 제거하고 싶습니다.
답변:
스택의 각 웹 서버에서 명령 줄 (Bash) 기능을 사용하여 수행합니다.
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"
}
그 짧은, 당신은 사용자 정의 모듈은 자신의 공개 사용 찾을 수 있습니다, 아니보다 더 자주, 마 젠토에서 CURL /는 fopen 방법 (하지만 그들은 그것을 할 핵심 방법을 사용하여 귀찮게 가정이의)를 활용할 수 있습니다 file_get_contents()
또는 curl
방법.
간단한 grep
코드 로 신속하게 확인할 수 있습니다 (코드가 난독 화되지 않았다고 가정)
grep -ilrE "curl|file_get_contents|fopen|Zend_Http_Client" app/code/local app/code/community
그리고 @Marius가 아래에서 말했듯이 base64
암호화 된 문자열로 메소드를 숨길 수있는 모호한 모듈을 찾으십시오.
grep -ilrE "eval[\t ]+\(" app/code/local app/code/community
위의 CLI 방법의 유일한 문제는 아웃 바운드 HTTP 요청에 매우 효과적이지만 HTTPS에는 쓸모가 없으며 (트래픽이 암호화 된 경우) IP / 호스트 이름 만 있으면됩니다.
eval
해당 eval
기능 에서 어떤 일이 발생하는지 찾아보고 싶을 수도 있습니다 . 집 eval
전화 번호로 사용되는 대부분의 내선 번호는 전화 번호를 쉽게 찾을 수 없습니다.
eval
너무이야 '