. 대신보다 안전한 방법을 사용해야하지만 양식의 방법에 따라 다릅니다. (아래 주어진 방법은 더 안전하지만 이상적이지는 않다).
1) 먼저 양식이 생성 된 .php
페이지의 프레임 구성을 해제하십시오 (.php
).상단 담기 : 만약 그렇지 않으면 (대조군 경우
가
if(!empty($_POST)){
if(!empty($_SERVER['HTTP_REFERRER']) && DomainOf($_SERVER['HTTP_REFERRER']) == $_SERVER['HTTP_HOST']){
$request_valid = true;
}
}
3) 또한,)/만드는 코드를이 부분을 건너 폼 데이터를 구문 분석
header('X-Frame-Options: Deny');
2) 또한, 확인 (15 분 만료) 유효성 검사 통과 여부를 확인, 구문 분석에
<?php
// ========= Needef functions =========
// RandomString : https://pastebin.com/raw/CziyUiDv
// Two way encryption: https://github.com/tazotodua/useful-php-scripts/blob/master/two-way-encrypt-decrypt.php
//before start of the output
$secret_key = 'fjd3vkuw#KURefg'; //change this
$encrypted_value = Cryptor::encrypt(time(), $_SERVER['REMOTE_ADDR'] . $secret_key);
?>
<form>
....
<input name="temp_random" value="<?php echo $encrypted_value;?>" ... />
:,이 phseudo 코드와 같은 논리를 사용
// paragraph 2 validation at first
// .....
// then:
if ( Cryptor::decrypt( $_POST['temp_random'], $_SERVER['REMOTE_ADDR'] . $secret_key) > time() - 60* 15){
//validated
...
}
나는 또한 PHP에서 URL을 검사 해 보았지만 아마추어 실수라고 알았습니다. – Juan
확인. 나는 너희들이 내게 주신 것을 살펴 봤고 너희들이 나에게 준 것을 사용해서 다른 생각을 생각했다 ... 내가 문자 집합을 무작위로 정해서 변수로 변환하고 숨겨진 값으로 게시하면 어떨까? 그래서 매번 바뀌고 스크립트가 실행될 때 그것을 확인합니까? – Juan
아마추어 실수 다시 ..... 미안. – Juan