라이브러리
[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` 클래스: 이 클래스는 객체의 속성과 값을 디버그 모드에서 표시하는 데 사용됩니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.