2012-06-03 5 views
3

Wordpress는 플러그인이 nonce를 클라이언트 측 코드로 내 보낸 다음 클라이언트가 서버와 다시 통신 할 때 nonce를 확인할 수있는 nonce 메커니즘을 가지고 있습니다.내 wordpress nonce를 더 빨리 만료시킬 수 있습니까? (via wp_verify_nonce)

소스 코드에서 wp_verify_nonce() (wp-includes/pluggable.php)을 살펴본 결과 nonce가 24 시간 미만인 경우 true를 반환합니다.

내가 확인할 수있는 nonce를 만드는 것이 가능한지 ... ... 1 분 전인가?

어떻게?

나는 add_filter()nonce_life을 통해 방법이 있다고 생각합니다. 그러나 나는 모든 곳의 넌센스가 짧은 인생을 가지기를 바라지 않는다. 나는 짧은 인생을 살기 위해 플러그인에서 사용하는 넌센스 만 원한다.

답변

1

나는 wordpress nonce에 대한 문서를 거의 찾지 못했습니다.

코드 자체가 복잡하지 않고 단순히 wp_verify_nonce() 기능을 바꿀 수있는 방법이 있지만 나는 넌스가 워드 프레스의 여러 곳에서 사용되고 있다고 생각하며 교체가 다른 언어를 깨뜨리지 않을 것이라고 확신하지 않습니다. 소지품.

여기 또는 다른 곳에서 도움이되는 제안이 없으면 내 논스이 더 빨리 만료되고 내 고유 한 nonce/timestamp 필드가 추가되었다는 아이디어를 포기했습니다.

필자가 쓰는 플러그인은 넌스 (nonce)를 생성 한 다음 스크립트 블록에 삽입 한 다음 웹 페이지에서 렌더링합니다. 페이지의 자바 스크립트가 wordpress admin-ajax.php로 다시 통신하면 넌스를 다시 보냅니다. Wordpress는 nonce를 wp_verify_nonce()으로 확인하고 nonce가 만료되지 않은 경우 요청을 허용합니다. 원하는대로 12 시간 또는 24 시간이 소요됩니다. 또한이 확인은 호출자의 신원을 확인합니다.

내가 한 것은 단순히 다른 nonce 인 암호화 된 타임 스탬프를 생성 한 것입니다. WP nonce와 같은 방식으로 자바 스크립트 스크립트 블록에 임베드됩니다. 동일한 방식으로 재전송되고 유사한 방식으로 확인됩니다. 해독 한 다음 타임 스탬프가 "최근"인지 확인합니다.
차이점은 내 플러그인이 확인을 제어하여 '최신 성'에 대한 임계 값을 설정할 수 있다는 것입니다.

관련 문제