SensitiveParameter sınıfı

(PHP 8 >= 8.2.0)

Giriş

Bu öznitelik, hassas olan ve bir yığın izlemede, varsa değerinin gizlenmesini gerektiren bir bağımsız değişkeni imlemek için kullanılır.

Sınıf Sözdizimi

final class SensitiveParameter {
/* Yöntemler */
public function __construct()
}

Örnekler

<?php
function defaultBehavior(
    string $secret,
    string $normal
) {
    throw new Exception('Error!');
}
function sensitiveParametersWithAttribute(
    #[\SensitiveParameter]
    string $secret,
    string $normal
) {
    throw new Exception('Error!');
}
try {
    defaultBehavior('password', 'normal');
} catch (Exception $e) {
    echo $e, PHP_EOL, PHP_EOL;
}
try {
    sensitiveParametersWithAttribute('password', 'normal');
} catch (Exception $e) {
    echo $e, PHP_EOL, PHP_EOL;
}
?>

Yukarıdaki örneğin PHP 8.2 çıktısı şuna benzer:

Exception: Error! in example.php:7
Stack trace:
#0 example.php(19): defaultBehavior('password', 'normal')
#1 {main}
Exception: Error! in example.php:15
Stack trace:
#0 example.php(25): sensitiveParametersWithAttribute(Object(SensitiveParameterValue), 'normal')
#1 {main}

İçindekiler

add a note

User Contributed Notes 1 note

up
22
miqrogroove at gmail dot com
1 year ago
Beware this attribute does nothing on object interfaces and will permit password exposure when used incorrectly.

<?php

interface Server
{
    public function connect(
        #[\SensitiveParameter]
        string $password,
    );
}

class TestServer implements Server
{
    public function connect(
        string $password,
    ) {
        throw new Exception('Guess what?');
    }
}

($var = new TestServer())->connect('wrl!L3=6O57T9?r');
To Top