>  기사  >  웹 프론트엔드  >  크로스 도메인 양식 제출 상태_자바스크립트 기술에 대한 위장된 판단 코드

크로스 도메인 양식 제출 상태_자바스크립트 기술에 대한 위장된 판단 코드

WBOY
WBOY원래의
2016-05-16 18:42:021152검색

생각해보면 처음에 iframe의 내부 페이지 정보를 얻을 수 있었다면, 얻을 수 없었다면 폼을 제출했다는 뜻이 아닐까요~
오른쪽 하단에 정보가 있는 것을 확인했습니다. 바이두의 입찰도 이 방법으로 판단하는 것을 참고하시면 됩니다.
예:

test.html:

코드 복사 코드는 다음과 같습니다.







<script> document.testform.onsubmit = 함수( ) { <br>document.testform.submitbtn.disabled = true; <br>submitMonitor(); <br><br>} <br>function submitMonitor() { <br>try{ <br>var hash = document. getElementById(' testiframe').contentWindow.location.hash; <br>setTimeout(submitMonitor,100); <br>} catch (e) { <br>document.getElementById('testiframe').src = "about:blank "; <br>document.testform.submitbtn.disabled = false; <br>} <br>} <br></script>



참고하세요 다음 코드는 동일한 도메인 이름이 아닌 크로스 도메인입니다.
testaction.php



코드 복사 코드는 다음과 같습니다. 다음: sleep(5)
echo $_POST['dddd']


단점:
이 단점 또한 404, 403, 500 등의 오류가 발생하면 성공적인 제출로 오해를 받을 수 있다는 점도 자명합니다.
참고: 이 방법은 연구용이며 사고력을 개발하는 데 사용됩니다.
바이두 판단 코드입니다




코드를 복사하세요
코드는 다음과 같습니다 var sfMessTimes ; function sfMessSubmitMonitor () {
try{
var hash = sf_mess_lib.getElement(SF_MESS_FRAME_ID).contentWindow.location.hash
sfMessTimes
if (sfMessTimes > 5 0 ) {
          경고(sf_mess_msg.fail); < l; i ) {
document.getElementById(SF_MESS_PREFIX sf_mess_cols[i].idname).disabled = false;                    }
} 잡기(e ) {
sf_mess_lib.getElement(SF_MESS_FRAME_ID).src = "about:blank";
경고(sf_mess_msg.success);
sf_mess_lib.getElement(SF_MESS_SUBMIT_ID).disabled =
for (var; i = 0, l = sf_mess_cols.length; i < l; i ) {
var inputCfg = sf_mess_cols[i]; var inputEl = document.getElementById(SF_MESS_PREFIX inputCfg.idname)
         inputEl.disabled ;
                                       inputEl.value = filtInnertip(inputCfg.innertip);                             
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.