라이브러리

[PHP] SensitiveParameterValue::__debugInfo - 민감한 값을 우발적인 노출로부터 보호합니다.




SensitiveParameterValue::__debugInfo


PHP의 `SensitiveParameterValue`는 `ReflectionParameter` 클래스의 하위 클래스로, `__debugInfo` 메서드를 사용하여 객체의 디버그 정보를 반환합니다. 이 메서드는 객체의 속성과 값을 디버그 모드에서 표시하는 데 사용됩니다.

사용 예제


#hostingforum.kr
php

class User {

    private $name;

    private $password;



    public function __construct($name, $password) {

        $this->name = $name;

        $this->password = $password;

    }



    public function getName() {

        return $this->name;

    }



    public function getPassword() {

        return $this->password;

    }

}



$user = new User('john', 'password123');



$reflectionClass = new ReflectionClass('User');

$reflectionProperty = $reflectionClass->getProperty('password');

$reflectionProperty->setAccessible(true);



$sensitiveParameterValue = new SensitiveParameterValue($reflectionProperty, $user);



echo $sensitiveParameterValue->__debugInfo(); // john (password is hidden)



SensitiveParameterValue::__debugInfo 메서드


`SensitiveParameterValue::__debugInfo` 메서드는 객체의 속성과 값을 디버그 모드에서 표시하는 데 사용됩니다. 이 메서드는 객체의 속성과 값을 반환합니다.

사용 방법


1. `SensitiveParameterValue` 객체를 생성합니다.
2. `__debugInfo` 메서드를 호출하여 객체의 속성과 값을 반환합니다.

예제


#hostingforum.kr
php

class SensitiveParameterValue {

    private $reflectionProperty;

    private $object;



    public function __construct(ReflectionProperty $reflectionProperty, $object) {

        $this->reflectionProperty = $reflectionProperty;

        $this->object = $object;

    }



    public function __debugInfo() {

        $value = $this->reflectionProperty->getValue($this->object);

        if ($this->reflectionProperty->getName() === 'password') {

            return 'password is hidden'; // password는 디버그 모드에서 표시되지 않습니다.

        } else {

            return $value;

        }

    }

}



참고


* `ReflectionParameter` 클래스: PHP의 `ReflectionParameter` 클래스는 객체의 속성과 값을 반영합니다.
* `ReflectionProperty` 클래스: PHP의 `ReflectionProperty` 클래스는 객체의 속성과 값을 반영합니다.
* `SensitiveParameterValue` 클래스: 이 클래스는 객체의 속성과 값을 디버그 모드에서 표시하는 데 사용됩니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 194 페이지

검색

게시물 검색