PHP용 Netbeans 7.4에서 "Do not Access Superglobal $_POST Array Direct" 경고
$_POST, $_GET, $_SERVER 등을 사용하는 동안 Netbeans 7.4 for PHP에서 이 메시지가 나타납니다.
Superglobal $_POST 어레이에 직접 액세스하지 않음
그것은 무엇을 뜻하나요?이 경고를 수정하려면 어떻게 해야 하나요?
편집: 이벤트 샘플코드에 이 경고가 계속 표시됩니다.
filter_input(INPUT_POST, 'var_name')
대신$_POST['var_name']
filter_input_array(INPUT_POST)
대신$_POST
조금 늦었지만, 같은 문제를 해결하기 위해 해결책을 찾다가 이 질문을 접하게 되었기 때문에 도움이 되었으면 합니다.
너와 같은 어둠 속에 있는 나를 발견했어.NetBeans 7.4에서 소개된 다음과 같은 새로운 힌트를 설명하는 이 기사를 방금 찾았습니다.
https://blogs.oracle.com/netbeansphp/entry/improve_your_code_with_new
이것이 추가된 이유는 슈퍼글로벌은 보통 사용자 입력으로 채워져 있기 때문에 절대 맹목적으로 믿어서는 안 됩니다.대신, 어떤 종류의 필터링을 해야 합니다.그것이 힌트입니다.superglobal 값에 포이즈닝된 콘텐츠가 있는 경우 필터링합니다.
예를 들어, 내가 있었던 곳:
$_SERVER['SERVER_NAME']
대신 다음과 같이 했습니다.
filter_input(INPUT_SERVER, 'SERVER_NAME', FILTER_SANITIZE_STRING)
filter_input 및 filters doc은 다음과 같습니다.
http://www.php.net/manual/en/function.filter-input.php
http://www.php.net/manual/en/filter.filters.php
대부분의 경우(거의 항상) 귀하의 의견을 삭제해야 한다는 다른 답변자들의 의견에 동의합니다.
단, REST 컨트롤러용 코드를 고려합니다.
$method = $_SERVER['REQUEST_METHOD'];
switch ($method) {
case 'GET':
return $this->doGet($request, $object);
case 'POST':
return $this->doPost($request, $object);
case 'PUT':
return $this->doPut($request, $object);
case 'DELETE':
return $this->doDelete($request, $object);
default:
return $this->onBadRequest();
}
여기서 소독을 하는 것은 별로 도움이 되지 않습니다(아무것도 망가뜨리지 않습니다).
따라서 권장사항을 따르되 맹목적으로 따르지는 마십시오. 오히려 권장사항이 왜 적합한지 이해하십시오.
그냥 사용하다
filter_input(INPUT_METHOD_NAME, 'var_name')
대신$_INPUT_METHOD_NAME['var_name']
filter_input_array(INPUT_METHOD_NAME)
대신$_INPUT_METHOD_NAME
예
$host= filter_input(INPUT_SERVER, 'HTTP_HOST');
echo $host;
대신
$host= $_SERVER['HTTP_HOST'];
echo $host;
그리고 사용
var_dump(filter_input_array(INPUT_SERVER));
대신
var_dump($_SERVER);
N.B: 다른 모든 Super Global 변수에 적용
다음은 NetBeans에서 경고를 발생시킨 코드의 일부입니다.
$page = (!empty($_GET['p']))
이 어레이를 필터링할 수 있는 방법이 수없이 많은지 많은 연구 끝에 간단한 것을 발견했습니다.그리고 내 코드는 작동하고 NetBeans는 행복하다.
$p = filter_input(INPUT_GET, 'p');
$page = (!empty($p))
언급URL : https://stackoverflow.com/questions/19767894/warning-do-not-access-superglobal-post-array-directly-on-netbeans-7-4-for-ph
'source' 카테고리의 다른 글
PHP의 참조 할당 연산자 =& (0) | 2022.12.05 |
---|---|
올바른 자격 증명을 가진 MySQL 연결에서 Python 3.5가 충돌하는 이유는 무엇입니까? (0) | 2022.12.05 |
vuex에서 편집 가능한 복잡한 개체(네스트됨)를 적절하게 처리하는 방법 (0) | 2022.12.05 |
MYSQL 파티셔닝이란 (0) | 2022.12.05 |
장치에서 디버깅할 때 '소스 코드가 바이트 코드와 일치하지 않음' (0) | 2022.12.05 |