我想通过在输入字段中插入代码来确保恶意用户不会损坏我的网站或数据库。 我应该用什么样的代码来测试它? 我知道有像iframe这样的html标签,但我不知道要在里面测试它。
感谢。
答案 0 :(得分:2)
我认为使用htmlspecialchars
(doc)(它是PHP中的一个函数,但其他语言可能具有相似的功能)或使用其他标记系统(?),如phpBB和MediaWiki将起作用。使用黑/白名单标签的HTML标签可以正常工作,但这非常危险 - 破解者会通过XSSing损害您的网站。
例如,您可能认为仅允许p
,br
,img
,font
,a
是正常的(顺便说一下,这对我们来说并不好当可以使用CSS时使用font
,但可以通过输入<img src="asdf" onerror="alert('hi')"/>
或<a href="javascript:alert('hi')">
来完成XSS。
你应该知道SQLi - 注入SQL命令。
SQLi的一个例子是:
避免在PHP中使用SQLi的一种方法是使用mysql_real_escape_string
(doc)。
答案 1 :(得分:1)
您可以阅读SQL Injections
答案 2 :(得分:1)
插入特殊字符,尤其是'
,?
,"
,$
,;
,,
和\
。如果您的网站没有失败,那么您就走在了正确的轨道上。
但最好是使用带参数的查询。您只需将字符串作为参数传递,数据库将负责为您转义字符。如果你这样做,你几乎不会犯错误。
答案 3 :(得分:0)
这实际上取决于架构和用户与您网站的互动。 SQL注入用户输入的字段是对使用数据库进行用户登录等的系统的典型攻击。因此,对用户字段的限制进入用户字段并在使用前对其进行筛选。
“关于你的儿子......” “哦,小比利!放桌子?”