2015-07-23 2 views
-5

См. Следующий код. Я хочу удалить все неавторизованные символы, такие как ./\ | [email protected]#$%^&*() _ - = + ~ < > , ? : ; " ' [] { } и ввод символа и всех пустых пространств.Удаление произвольных символов в php

Я хочу получать только английские символы и номера разрешены.

if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    $username = test_input($_POST["user"]); 
    $password = test_input($_POST["pass"]);} 

Как должна быть функция test_input()?

+3

Специально для аутентификации: * не удаляйте символы с входа пользователя *! Или ваш бизнес рискует быть [высмеянным и сделанным примером онлайн] (http://www.jeremytunnell.com/posts/swab-password-policies-and-two-factor-authentication-a-comedy-of-errors), ведущим к потере пользователей. Представьте, что ваш пользователь хочет '-_-; \ * _ */'в качестве пароля. Вы применяете свой 'test_input', и пароль заканчивается сохраненным как пустая строка. Затем я могу войти в систему, используя для этого пароль '~~~~~~~'. Это не дыра в безопасности, это каньон безопасности *. Если вы действительно этого не хотите, предупредите пользователя, а затем откажитесь от ввода. – Amadan

ответ

0
function test_input($string){ 
    if(preg_match('/[^a-z_\-0-9]/i', $string)) 
    { 
     echo "not valid string"; 
    } 
} 
Смежные вопросы