Atu*_*vid 3 php mysql security xss sql-injection
我已经阅读了很多文章,找出一个简单的字符列表,可以限制用户输入保护我的网站免受XSS和SQL注入,但找不到任何通用列表.
有人可以通过简单地给我一个安全或不安全字符列表来帮助我吗?我知道这可以是字段特定的,但我需要这个文本字段,我想允许最大可能的字符.
"黑名单"方法充满了问题.对于SQLi和XSS,针对白名单的输入验证是必不可少的,即定义您期望的而不是您不期望的.还要记住,用户输入 - 或"不受信任的数据" - 来自许多地方:表单,查询字符串,标题,ID3和exif标记等.
对于SQLi,请确保始终使用参数化SQL语句,通常采用存储过程参数或任何正常的ORM形式.同时应用"最低权限主体"并限制连接到数据库的帐户可以造成的损害.有关SQLi的更多信息,请访问:http://www.troyhunt.com/2010/05/owasp-top-10-for-net-developers-part-1.html
在XSS前端,始终对输出进行编码,并确保对其出现的相应标记语言进行编码.JavaScript的输出编码与CSS不同,后者与CSS不同.请记住,不仅要编码立即反映输入的响应,还要编码存储在数据库中的不受信任的数据,这些数据可能存在持久的XSS威胁.更多关于这一切:http: //www.troyhunt.com/2010/05/owasp-top-10-for-net-developers-part-2.html
我知道这有点超出了原来的问题,但我想说的是,允许的字符只是图片的一小部分.上面提到的其他做法可能更重要(但你仍然应该使用那些白名单).