IT story

PHP 용 Netbeans 7.4에서“Superglobal $ _POST Array에 직접 액세스하지 마십시오”경고

hot-time 2020. 7. 22. 07:55
반응형

PHP 용 Netbeans 7.4에서“Superglobal $ _POST Array에 직접 액세스하지 마십시오”경고


$ _POST , $ _GET , $ _SERVER , ...를 사용하는 동안 PHP 용 Netbeans 7.4에서이 메시지 경고가 표시됩니다 .

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

그것이 추가 된 이유는 수퍼 글로벌이 일반적으로 사용자 입력으로 채워져 있기 때문에 맹목적으로 신뢰할 수 없기 때문입니다. 대신 어떤 종류의 필터링을 수행해야하며 힌트가 제안하는 것입니다. 독에 중독 된 콘텐츠가있는 경우 슈퍼 글로벌 값을 필터링하십시오.

예를 들어, 내가 가진 곳 :

$_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();
}

여기에 살균을 적용하는 것은별로 유용하지 않습니다 (물론 아무것도 깨지 않더라도).

따라서 권장 사항을 따르십시오. 그러나 맹목적으로는 아닙니다.


그냥 사용

$ _INPUT_METHOD_NAME 대신 filter_input (INPUT_METHOD_NAME, 'var_name') $ _INPUT_METHOD_NAME 대신 filter_input_array (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);

NB : 다른 모든 슈퍼 글로벌 변수에 적용

참고 URL : https://stackoverflow.com/questions/19767894/warning-do-not-access-superglobal-post-array-directly-on-netbeans-7-4-for-ph

반응형