원래 목적 ? [닫은]
<input type="hidden">
태그 의 원래 목적이 궁금합니다 .
요즘에는 서버로 전송되는 변수를 저장하기 위해 JavaScript와 함께 자주 사용됩니다.
- HTML 2.0은 1995 년 11 월 에 출시되었으며 이미 input type = "hidden"에 대한 사양이 포함되어 있습니다.
- JavaScript는 1996 년 3 월 에 출시되었습니다.
그렇다면 자바 스크립트 이전 에 <input type="hidden">
존재했던 것인데 원래 목적은 무엇 이었을까요? 나는 일종의 상태를 유지하기 위해 다시 (변경되지 않은) 값을 서버에서 클라이언트로 보내는 것을 상상할 수 있습니다. 아니면 그 역사에서 뭔가 잘못되어 항상 JavaScript와 함께 사용해야 했습니까?<input type="hidden">
가능하면 답변에 참고 문헌을 제공하십시오.
나는 일종의 상태를 유지하기 위해 다시 (변경되지 않은) 값을 서버에서 클라이언트로 보내는 것을 상상할 수 있습니다.
정확합니다. 사실, 오늘날 우리가 알고있는 HTTP는 적어도 근본적으로 상태 비 저장 프로토콜이기 때문에 오늘날에도 여전히이 목적으로 사용되고 있습니다.
이 사용 사례는 실제로 HTML 3.2 에서 처음 설명되었습니다 (HTML 2.0에 이러한 설명이 포함되어 있지 않은 것이 놀랍습니다).
type=hidden
이러한 필드는 렌더링되지 않아야하며 서버가 양식과 함께 상태 정보를 저장할 수있는 수단을 제공해서는 안됩니다. 이는 해당 속성에 의해 정의 된 이름 / 값 쌍을 사용하여 양식이 제출 될 때 서버로 다시 전달됩니다. 이것은 HTTP의 상태 비 저장에 대한 해결 방법입니다. 또 다른 접근 방식은 HTTP "쿠키"를 사용하는 것입니다.<input type=hidden name=customerid value="c2415-345-8563">
HTML 3.2가 JavaScript의 초기 릴리스 이후 에만 W3C 권장 사항이되었다고 언급 할 가치가 있지만 숨겨진 필드가 거의 항상 동일한 목적을 제공한다고 가정하는 것이 안전합니다.
여기서는 간단한 서버 측 실제 사례를 제공 할 것입니다. 예를 들어 레코드가 반복되고 각 레코드에 삭제 버튼이있는 양식이 있고 특정 레코드를 삭제해야하므로 여기에 hidden
필드가 표시됩니다. 이 경우 삭제할 레코드의 참조를 가져 오면id
예를 들면
<?php
if(isset($_POST['delete_action'])) {
mysqli_query($connection, "DELETE FROM table_name
WHERE record_id = ".$_POST['row_to_be_deleted']);
//Here is where hidden field value is used
}
while(condition) {
?>
<span><?php echo 'Looped Record Name'; ?>
<form method="post">
<input type="hidden" name="row_to_be_deleted" value="<?php echo $record_id; ?>" />
<input type="submit" name="delete_action" />
</form>
<?php
}
?>
요컨대, 원래 목적은 양식의 제출과 함께 제출 될 필드를 만드는 것이 었습니다. 때로는 숨겨진 필드 (예 : 사용자 ID)에 일부 정보를 저장하고 양식 제출과 함께 제출해야하는 경우가있었습니다.
HTML 1995 년 9 월 22 일 사양에서
'TYPE = HIDDEN'인 INPUT 요소는 숨겨진 필드를 나타냅니다. 사용자는이 필드와 상호 작용하지 않습니다. 대신 VALUE 속성은 필드의 값을 지정합니다. NAME 및 VALUE 속성은 필수입니다.
type = 'hidden'을 포함한 양식 요소의 값은 양식이 게시 될 때 서버에 제출됩니다. 입력 유형 = "숨겨진"값이 페이지에 표시되지 않습니다. 예를 들어 숨겨진 필드에 사용자 ID를 유지하는 것은 많은 용도 중 하나입니다.
SO는 찬성 클릭에 숨겨진 필드를 사용합니다.
<input value="16293741" name="postId" type="hidden">
이 값을 사용하여 서버 측 스크립트는 찬성 투표를 저장할 수 있습니다.
기본적으로 숨겨진 필드는 다단계 양식과 함께 사용하는 것이 더 유용하고 이점이 있습니다. 숨겨진 필드를 사용하여 hidden을 사용하여 한 단계 정보를 다음 단계로 전달하고 끝 단계까지 전달되도록 유지할 수 있습니다.
- CSRF 토큰.
교차 사이트 요청 위조 는 매우 일반적인 웹 사이트 취약점입니다. 모든 양식 제출에서 비밀 사용자 별 토큰을 요구하면 공격 사이트가 적절한 토큰이 무엇인지 추측 할 수없고 사용자를 대신하여 수행하는 양식 제출은 항상 실패하므로 CSRF 공격을 방지합니다.
- 다중 페이지 양식에 상태를 저장합니다.
사용자가 현재있는 다중 페이지 양식에 어떤 단계를 저장해야하는 경우 숨겨진 입력 필드를 사용하십시오. 사용자는이 정보를 볼 필요가 없으므로 숨겨진 입력 필드에서 숨 깁니다.
일반 규칙 : 필드를 사용하여 사용자가 볼 필요가 없지만 양식 제출시 서버로 보내려는 모든 것을 저장합니다.
참고 URL : https://stackoverflow.com/questions/16293741/original-purpose-of-input-type-hidden
'Programming' 카테고리의 다른 글
Xcode 7에서 "iTunes 연결 액세스 권한이있는 계정이 없습니다"라는 오류가 계속 나타납니다. (0) | 2020.08.20 |
---|---|
자바 스크립트에 뮤텍스가 필요합니까? (0) | 2020.08.20 |
UNIX에서 파일 추가 원자 적입니까? (0) | 2020.08.20 |
우분투에서 바람둥이 6을 다시 시작하는 방법 (0) | 2020.08.20 |
Apple의 TestFlight 서비스에서 외부 테스터 초대를 다시 보내는 방법 (0) | 2020.08.20 |