source

HTML 양식의 작업 속성에 빈 URL을 사용하는 것이 좋은 방법입니까?(action=")"

ittop 2023. 4. 12. 22:57
반응형

HTML 양식의 작업 속성에 빈 URL을 사용하는 것이 좋은 방법입니까?(action=")"

공백 HTML 폼 액션을 사용하여 현재 페이지로 되돌리는 것에 대해 "베스트 프랙티스" 응답을 줄 수 있는 사람이 있는지 궁금합니다.

여기에 공백 HTML 액션이 무엇을 하는지 묻는 글이 올라오고 있고, 이 페이지와 같은 일부에서는 괜찮다고 제안하고 있습니다만, 저는 사람들의 생각을 알고 싶습니다.

action 속성을 모두 생략하는 것이 최선입니다.생략하면 양식은 문서 주소(같은 페이지)로 전송됩니다.

또한 빈 상태로 둘 수도 있으며 HTML의 폼 제출 알고리즘을 구현하는 브라우저는 문서의 주소와 동등하게 취급합니다.이것은 주로 브라우저가 현재 그렇게 동작하고 있습니다.

8.액션은 송신자 요소의 액션이 됩니다.

9.수행이 빈 문자열인 경우 수행이 문서의 주소가 됩니다.

주의: 이 순서는 RFC 3986을 의도적으로 위반하는 것으로, 여기서 기본 URL 처리가 필요합니다.이 위반은 레거시 콘텐츠와의 호환성에 대한 욕구가 원인입니다.[RFC3986]

이것은 확실히 현재의 모든 브라우저에서는 동작하지만, 일부 오래된 브라우저에서는 예상대로 동작하지 않을 수 있습니다("빈 동작=" 속성으로 이상한 일을 합니다."). 따라서 사양에서는 작성자가 이 항목을 비워 두는 것을 강력히 권장하지 않습니다.

action ★★★★★★★★★★★★★★★★★」formaction콘텐츠 속성(지정된 경우)은 공백으로 둘러싸인 유효한 URL이 아닌 값을 가져야 합니다.

실제로 현재 HTML5 초안의 양식 제출 서브섹션에서는action=""사양에 어긋납니다.

action ★★★★★★★★★★★★★★★★★」formaction콘텐츠 속성(지정된 경우)은 공백으로 둘러싸인 유효한 URL이 아닌 값을 가져야 합니다.(추가)

메르카토르의 답변에 인용된 부분은 구현에 대한 요구사항이지 작성자가 아닙니다.작성자는 작성자의 요건을 따라야 합니다.이 사양을 읽는 방법을 인용하려면:

특히 제작자에게 적용되는 적합성 요건(예: 작성자 및 작성 문서)과 소비자에게 적용되는 적합성 요건(예: 웹 브라우저)이 있습니다.요구 사항에 따라 구별할 수 있습니다.생산자에 대한 요구 사항은 무엇이 허용되는지 명시하는 반면, 소비자에 대한 요구 사항은 소프트웨어가 어떻게 행동해야 하는지를 명시합니다.

HTML4(빈 URL을 허용)에서 변경된 것은 "브라우저들은 빈 속성으로 이상한 일을 저지르기 때문입니다."변경 이유를 고려하면 HTML4에서도 하지 않는 것이 좋을 것 같습니다.

액션 Atribut을 포함하지 않으면 페이지가 열리고 iframe 클릭재킹 공격까지 몇 가지 간단한 절차가 포함됩니다.

  • 공격자가 사용자의 페이지를 iframe으로 랩합니다.
  • iframe URL에는 폼필드와 이름이 같은 쿼리 파라미터가 포함되어 있습니다.
  • 양식을 제출하면 쿼리 값이 데이터베이스에 삽입됩니다.
  • 사용자의 식별 정보(이메일, 주소 등)가 유출되었습니다.

레퍼런스

이것은 HTML5에서 검증됩니다.

<form action="#">

5의 경우 HTML 5의 경우action=""지원되지 않으므로 이 작업을 수행하지 마십시오. 잘못된 관행입니다.

액션을 완전히 부정하는 경우는, 디폴트로 같은 페이지에 송신됩니다.이것이 베스트 프랙티스라고 생각합니다.

<form>This will submit to the current page</form>

php를 사용하여 폼을 제출하는 경우 다음 사항을 고려해 주십시오.자세한 것은 이쪽을 봐 주세요.

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

'하다'를 .#단, 이것이 앵커처럼 기능하여 페이지 맨 위로 스크롤된다는 것을 명심하십시오.

<form action="#">

양식이 어디에 게시되는지 명확하게 말하는 것이 가장 좋다고 생각합니다.완전히 안전한 경우 양식을 자신에게 다시 제출하려면 작업 속성에 있는 것과 동일한 URL을 입력합니다.메인스트림브라우저는""비주류 브라우저가 같은 페이지로 이동한다고 보장할 수 없습니다.

물론 Judling과 같은 GET 데이터를 포함한 전체 URL이 지적합니다.

그냥 사용하다

?

<form action="?" method="post" enctype="multipart/form-data" name="myForm" id="myForm">

HTML5 규격을 위반하지 않습니다.

Classic ASP에서 작업할 때 많이 했어요.통상, 입력에 서버측의 검증이 필요한 경우(AJAX 이전)에 사용했습니다.가장 큰 장점은 파일 수준에서 프로그래밍 로직과 프레젠테이션이 분리되지 않는다는 것입니다.

예전에는 액션 속성을 전혀 지정하지 않았습니다.모든 페이지가 같은 주소로 정확히 전송되도록 프레임워크가 설계되어 있습니다.하지만 오늘 나는 문제를 발견했다.백그라운드 콜을 발신하기 위해 액션 속성 값을 빌리는 경우가 있습니다(AJAX라고 하는 사람도 있을 수 있습니다).따라서 액션 속성이 지정되지 않은 경우 IE는 액션 속성 값을 빈 상태로 유지합니다.액션 속성이 지정되지 않은 경우 JavaScript 대응은 최소한 정의되어 있지 않아야 하기 때문에 제가 이해하기엔 좀 이상합니다.어쨌든 베스트 프랙티스를 선택하기 전에 JavaScript에서 속성을 사용할지 여부에 대해 더 많은 컨텍스트를 이해할 필요가 있습니다.

빈 액션을 넣으면 일부 보안 필터링은 악의적이거나 피싱된 것으로 간주됩니다.따라서 그들은 당신의 페이지를 차단할 수 있습니다.따라서 action=을 공백으로 두지 않는 것이 좋습니다.

언급URL : https://stackoverflow.com/questions/1131781/is-it-a-good-practice-to-use-an-empty-url-for-a-html-forms-action-attribute-a

반응형