Bar*_*raa 2 html php regex security
我已经阅读过有关sql注入等安全问题的文章.
我对输入字段中的安全漏洞不太熟悉.
我目前有一个接收输入的表单(通过正则表达式验证),例如电子邮件验证将如下:
if(/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i.test(document.getElementById(idName).value)){
return true;
}else{
return false;
}
Run Code Online (Sandbox Code Playgroud)
这些值未连接到数据库,仅用于php脚本.我需要注意哪些安全漏洞?或者通过使用正则表达式验证我可以安全地抵御漏洞?
任何信息都非常感谢,
谢谢,Al
是.如果您有兴趣在服务器端拥有有效的电子邮件(至少对您的正则表达式有效),您绝对不应该依赖客户端验证通过javascript正则表达式.想象一下有人将客户端代码更改为以下(只有一个选项,数千:) :):
if(/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i.test(document.getElementById(idName).value)){
return true;
}else{
// CHANGED:
return true;
}
Run Code Online (Sandbox Code Playgroud)
并且通常回答你的问题:我认为在几乎所有使用客户端在PHP代码中发送输入的情况下,你需要一种输入过滤/清理,但你不能真正概括这个任务.这就是为什么没有通常有效的sanitize()函数,因为它总是取决于你如何在服务器端使用输入.
在您的情况下,一种方法可能是通过php再次针对相同的正则表达式验证输入,或者将php的filter_var()与FILTER_VALIDATE_EMAIL过滤器结合使用
UPDATE
我刚刚发现了一篇关于输入验证的非常好的文章,这对我帮助很大:输入验证
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |