“전화 집”인 내선 번호를 식별하는 방법은 무엇입니까?


10

백그라운드에서 원격 서버로 HTTP 요청을 보내는 코드를 식별하는 방법이 있습니까?

개발 시스템에서 드문 드문 리셉션을 받았을 때 많은 상점에서 로컬 호스트를 실행하는 데 시간이 오래 걸린다는 것을 알았습니다.

내 원격 연결로 인해 일부 원격 서버가 응답하는 데 시간이 오래 걸리기 때문입니다. 예를 들어 외부 서버가 다운되거나 느리면 라이브 설치 속도가 느려질 수 있기 때문에 이러한 요청을 식별하고 제거하고 싶습니다.


1
이 통화를 삭제할 수 있는지 확인 / 확인하십시오. 아마도 허용되지만 확장 요구 사항 중 하나 인 인스턴스를 보았습니다.
David Mulder

답변:


8

스택의 각 웹 서버에서 명령 줄 (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 / 호스트 이름 만 있으면됩니다.


2
eval해당 eval기능 에서 어떤 일이 발생하는지 찾아보고 싶을 수도 있습니다 . 집 eval전화 번호로 사용되는 대부분의 내선 번호는 전화 번호를 쉽게 찾을 수 없습니다.
마리우스

2
대한 정규식을 포함하도록 업데이트 eval너무이야 '
Sonassi - 벤 Lessani

1

대답하기 어려운 것-일부 타사 확장 프로그램이 원격 서버에 요청을 보내는 경우 요청이 작성된 방식에 따라 여러 가지 방법으로 발생할 수 있습니다. 이러한 인스턴스를 찾는 가장 좋은 방법은 실제로 확장 코드를 연구하는 것입니다. 불행히도 이와 같은 것을 식별하는 담요 방법은 없습니다.

어떤 확장 프로그램을 설치했는지 또는 어떻게 확장했는지 알지 못하면 확장 기능이 제대로 개발 되었다면 프런트 엔드 성능에 영향을 미치지 않는 방식으로 통신이 이루어져야한다고 덧붙입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.