2017-11-14 17 views
0

누군가를 식별하는 방법은 데이터를 변경하는 응용 프로그램을 통해 숨겨진 필드에서 변경을 수행했습니다. In the snapshot, hidden field tampering application is opened and all the fields are there including text fields as well as hidden fields. The price has been changed from 2999 to 29.숨겨진 필드의 데이터 변조 식별

이 응용 프로그램을 통해 웹 페이지의 숨겨진 필드 값이 변경되었는지 확인하는 방법에 대해 알고 싶습니다. 자바 스크립트에서 (아약스 또는 jquery 코드를 통해) 식별 할 수있는 방법이 있습니까? 또는 식별하는 다른 방법?

답변

0

숨겨진 필드에 값을로드하는 경우 값과 값을 알고 있다고 가정합니다.

옵션 1 : 숨겨진 입력이 표시되기 전에 세션에 값을 저장 한 다음 양식 게시에서 비교합니다. POST에 그런

session_start(); 
$_SESSION['hiddenValue'] = $someValue; 

<form action="http://somedomain.com/endpoint" method="post"> 
    ... 
    <input type="hidden" name="hidden" value="<?php echo $someValue;?>"/> 
    <button type="submit">Submit</button> 
</form> 

:

<?php 
    if($_POST['hidden'] != $_SESSION['hiddenValue']) { 
     // Hidden value has been changed. 
    } 

옵션 2 : 다시 데이터베이스 또는 다른 데이터 소스의 값을 읽고 포스트와 비교. POST에 그런

$someValue = // Load value from your data source 

<form action="http://somedomain.com/endpoint" method="post"> 
    ... 
    <input type="hidden" name="hidden" value="<?php echo $someValue;?>"/> 
    <button type="submit">Submit</button> 
</form> 

: 답변

<?php 
    $someValue = // Load value from your data source 

    if($_POST['hidden'] != $someValue) { 
     // Hidden value has been changed. 
    } 
+0

감사합니다! 그러나 같은 페이지에서 숨겨진 필드 값이 데이터 변조 응용 프로그램을 통해 변경되었음을 알고 싶습니다. (일반적으로 onblur/onchange 이벤트를 통해 수행됩니다.) 하지만이 응용 프로그램을 변경하는 경우 자바 스크립트를 통해 식별하는 방법을 누른 다음 값을 변경하고 있습니까? – Nandkumar

+0

'위조 응용 프로그램'을 제어 할 권한이 없기 때문에이 작업을 수행 할 수 없습니다. 폼 제출시 다른 옵션은 AJAX 요청을 수행하고 숨겨진 필드 값과 데이터 소스 값을 비교하여 일치하지 않아 양식 제출을 방지하는 것입니다. 어떤 경우 든 체크인 서버 쪽을 수행해야합니다. – Springie

+0

의심스러운 사용자를 식별하는 것이 내 작업의 요구 사항입니다. (그들의 행동을 피하지 않기 위해). 의심스러운 사용자를 식별하는 과정에서 숨겨진 필드의 변경 사항 (동일한 페이지)이 변경되었는지, 누가 해당 사용자 (IP 주소)인지 확인해야합니다. 따라서 자신의 데이터를 수집해야합니다. – Nandkumar