我想知道如何将某些单词从表单中输入黑名单。具体来说,是用户名字段。我不确定是否需要访问PHP / JS文件,但是访问这些文件的权限有限。
<div class="form-group">
<label for="username" class="control-label">{{ lang('signup.username') }}</label>
<input type="text" class="form-control" id="username" value="{{ data['login'] }}" name="RegistrationForm[login]" placeholder="Enter username">'===
</div>
{% if name_fields %}
<script>
function is_banned_name($data) {
$banned_names = array(
'socialwizards', 'socialwizard', 'bulkfollow', 'bulkfollows'
);
foreach($banned_names as $banned_name) {
$pattern = '/('.$banned_name.')/';
$match = preg_match($pattern,$data);
if($match) {
return true;
}
}
return false;
}
if(is_banned_name($_POST['username'])) {
<div class="alert alert-dismissible alert-danger {% if site['rtl'] %} rtl-alert {% endif %}">
<button type="button" class="close" data-dismiss="alert">×</button>
{{ errorMessage }}
</div>
}
</script
(将其添加到我的表格末尾)
答案 0 :(得分:2)
由于用户可以操纵或禁用JavaScript,因此使用javascript使用PHP并不安全。
function is_banned_name($data) {
$banned_names = array(
'admin', 'test', 'user', 'fake', 'hack', 'error'
);
foreach($banned_names as $banned_name) {
$pattern = '/('.$banned_name.')/';
$match = preg_match($pattern,$data);
if($match) {
return true;
}
}
return false;
}
那你可以说
if(is_banned_name($_POST['username'])) {
// do something
}
答案 1 :(得分:0)
您可以使用JavaScript进行操作,但不建议这样做。以下代码是JavaScript代码如何执行此操作的示例。如果名称包含禁止的名称,则代码将返回true。
function is_banned_name(str) {
var banned_names = ['admin', 'hacker', 'test', 'user', 'free']; banned_names.forEach(element => {
if(str.match(element)) { return true; }
});
} ```