Google 웹 사이트에서 간헐적 인 문제가 발생합니다. 내 양식 방식이 POST
일 때 GET
을 통해 양식을 제출하려는 사용자가 있습니다. 오류는 항상 IE 사용자가옵니다. 몇 가지 UA 문자열에 "yie8"에 대한 참조가 있다는 것을 알았습니다. 여기에는 Yahoo의 IE8 패키지가 있다고 가정합니다. 나는 야후! 툴바는 저에게 맞지 않을 수 있지만 툴바가 설치된 IE7에서 문제를 재현 할 수는 없습니다. 이 문제는이 폼뿐만 아니라, 많은 것들이 jQuery
폼 플러그 인
load() 함수를 사용하여 Ajax를 통해 제출 된 객체 매개 변수와 함께 발생합니다. 이 예제는 그 중 하나가 아닙니다.내 양식 메소드가 POST 일 때 GET을 요청하는 사용자
간단히 말해서 내 AcceptVerb()
속성을 모두 꺼내는 것이 좋겠지 만 이는 완전히 절름발이입니다. 누구나 이런 식으로 뭔가를 발견하거나 그것을 다루는 아이디어가 있습니까?
다음은 예외 로그 항목의 예입니다.
We've got a Web problem! Exception thrown:
http://my.web.site/User.mvc/ResetPassword
Method: GET
User: <not logged in>
UserAgent: IE 7 (Mozilla/4.0 (compatible; MSIE 7.0;Windows NT 5.1;.NET CLR 1.1.4322;.NET CLR 2.0.50727;.NET CLR 3.0.04506.30))
Exception: System.Web.HttpException
Message: A public action method 'ResetPassword' could not be found on controller 'MyApp.Controllers.UserController'.
다음은 브라우저에 렌더링되는 HTML입니다.
<form action="/User.mvc/ResetPassword" class="standard-form small-form" method="post">
<fieldset>
<div class="row">
<label for="usernameTextBox">User Name</label>
<input type="text" name="username" id="usernameTextBox" />
</div>
<div class="row">
<label for="emailTextBox">Email Address</label>
<input type="text" name="email" id="emailTextBox" />
</div>
<div class="row">
<label> </label>
<input type="submit" value="Reset Password" />
</div>
</fieldset>
</form>
다음은 내 ResetPassword 작업의 서명입니다.
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ResetPassword(string username, string email)
(그리고 예, 이메일 주소는 우리가 파일을 가지고있는 하나와 일치해야합니다) 당신이 이것에 대해 아무것도 할 수 있다고 생각하지 않습니다
예외 로그에는 전달 된 매개 변수도 표시됩니다. 종종, 아무도 없습니다. 이 특별한 오류에서 실제로 IE7로 위장한 봇이었을 수 있습니다. 로그인/재설정 패스를 제외한 모든 작업은 보호되므로 봇은 들어올 수 없습니다. 우리는 인증 된 페이지에서도이를 볼 수 있지만 실제 양식 제출을 수행하는 jQuery 양식 플러그인을 사용하고 있습니다. 그것은 별도의 질문 일 수 있습니다. –
하, IP 추적에 머리를 올려 주셔서 감사합니다. http://69.84.207.147/ (링크 안전) –
아 - 좋은 ol 'lightspeed. 그것은 모든 오류에 책임이 있습니까? –