URL 매개변수의 변조 감지
목적
사용 예
위의 목적이 이해하기 어렵다고 생각하기 때문에, 실례를 설명합니다.
3점 리더 증후군 검사기 라는 웹 서비스를 만들었습니다.
자신의 과거 트윗에 얼마나 3점 리더(...)가 사용되고 있는지를 볼 수 있습니다.
Twitter에 대한 공유 기능이 구현되어 있으며, 자신의 분석 결과를 동적 OGP 이미지로 공유할 수 있습니다.
사용자별 공유 URL: htps : // 씨텐-아아 r. 뭔가. 코 m / 샤레 / 미사 _ Fd / 32 / 169 / FX174
공유 URL은 다음과 같이 구성됩니다.
/share/{사용자 이름}/{스코어 분자}/{스코어 분모}/{해시 값}
매개 변수에서 변조를 감지하면 기본 OGP 이미지가 표시됩니다.
변조된 공유 URL: htps : //씨 텐-아아 r. 뭔가. 코 m / 샤레 / 미사 _ Fd / 100/169 / FX174
이 사용자 이름, 점수 분자 및 점수 분모 값을 사용하여 동적 OGP 이미지를 만들지 만,
변조 감지 메커니즘을 넣지 않으면 사용자가 자신의 점수를 가장할 수 있습니다.
분석 결과를 서버에 저장하지 않으므로 실제 데이터와 비교할 수 없습니다.
그 때문에, 말미에 해시치를 부가해 대책하고 있습니다.
구현 개요
대략적으로, 다음과 같은 구조를 채용하고 있습니다.
URL 생성 시 : 공유 URL 생성 시 '사용자 이름', '스코어 분자', '스코어 분모', '해시 문자열'을 사용하여 해시 값 생성
변조 확인 시: '사용자 이름', '스코어 분자', '스코어 분모', '해시 값'이 변조되지 않았거나 '해시화 문자열'을 사용하여 확인
구현 세부사항
URL 생성시
아래와 같은 함수를 사용해, 파라미터로부터 해시를 작성하고 있습니다.
public static function generateShortHash($screenName, $matchCount, $totalCount, $algo = 'CRC32') {
$hashSource = $screenName . "/" . $matchCount . "/" . $totalCount . "/STRING_FOR_HASHING";
return strtr(rtrim(base64_encode(pack('H*', hash($algo, $hashSource))), '='), '+/', '-_');
}
짧은 해시를 만드는 방법은 아래의 기사를 참고로 했습니다. 고마워요.
h tps:// 퀵했다. 작은 m/코리 ym/있어 MS/그림 FC1C419 그림 4b7772b65c0
변조 체크 시
위의 함수를 사용하여 전송 된 해시 값이 일치하는지 확인합니다.
일치하는 경우 동적 OGP 이미지를 생성하고 일치하지 않으면 기본 정적 OGP 이미지를 공유 URL의 OGP 이미지로 지정합니다.
참고 페이지
PHP로 짧은 해시
Reference
이 문제에 관하여(URL 매개변수의 변조 감지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/SanjiMonica/items/983bf10f656cb7159546
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
대략적으로, 다음과 같은 구조를 채용하고 있습니다.
URL 생성 시 : 공유 URL 생성 시 '사용자 이름', '스코어 분자', '스코어 분모', '해시 문자열'을 사용하여 해시 값 생성
변조 확인 시: '사용자 이름', '스코어 분자', '스코어 분모', '해시 값'이 변조되지 않았거나 '해시화 문자열'을 사용하여 확인
구현 세부사항
URL 생성시
아래와 같은 함수를 사용해, 파라미터로부터 해시를 작성하고 있습니다.
public static function generateShortHash($screenName, $matchCount, $totalCount, $algo = 'CRC32') {
$hashSource = $screenName . "/" . $matchCount . "/" . $totalCount . "/STRING_FOR_HASHING";
return strtr(rtrim(base64_encode(pack('H*', hash($algo, $hashSource))), '='), '+/', '-_');
}
짧은 해시를 만드는 방법은 아래의 기사를 참고로 했습니다. 고마워요.
h tps:// 퀵했다. 작은 m/코리 ym/있어 MS/그림 FC1C419 그림 4b7772b65c0
변조 체크 시
위의 함수를 사용하여 전송 된 해시 값이 일치하는지 확인합니다.
일치하는 경우 동적 OGP 이미지를 생성하고 일치하지 않으면 기본 정적 OGP 이미지를 공유 URL의 OGP 이미지로 지정합니다.
참고 페이지
PHP로 짧은 해시
Reference
이 문제에 관하여(URL 매개변수의 변조 감지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/SanjiMonica/items/983bf10f656cb7159546
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
public static function generateShortHash($screenName, $matchCount, $totalCount, $algo = 'CRC32') {
$hashSource = $screenName . "/" . $matchCount . "/" . $totalCount . "/STRING_FOR_HASHING";
return strtr(rtrim(base64_encode(pack('H*', hash($algo, $hashSource))), '='), '+/', '-_');
}
PHP로 짧은 해시
Reference
이 문제에 관하여(URL 매개변수의 변조 감지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/SanjiMonica/items/983bf10f656cb7159546텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)