什么样的代码会损坏我的网站
我想确保流氓用户不会通过在我的输入字段中插入代码来损坏我的网站或数据库。 我应该使用什么样的代码来测试它? 我知道有像 iframe 这样的 html 标签,但我不知道要在里面放什么来测试它。
谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我想确保流氓用户不会通过在我的输入字段中插入代码来损坏我的网站或数据库。 我应该使用什么样的代码来测试它? 我知道有像 iframe 这样的 html 标签,但我不知道要在里面放什么来测试它。
谢谢。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
HTML
我认为使用
htmlspecialchars
(doc) (这是 PHP 中的一个函数,但其他语言可能有类似的函数)或使用其他标记系统(?),如 phpBB 和 MediaWiki 也可以。通过黑/白名单标签使用 HTML 标签可以工作,但它非常危险 - 破解者会通过 XSSing 损害您的网站。例如,您可能认为只允许
p
、br
、img
、font
、a< /code> 就可以了(顺便说一句,能用 CSS 就用
font
不太好),但是输入或
。
SQL
您应该了解 SQLi - 注入 SQL 命令。
SQLi 的一个示例是:
避免在 PHP 中被 SQLi 处理的一种方法是使用
mysql_real_escape_string
(doc)。HTML
I think using
htmlspecialchars
(doc) (It's a function in PHP but other language may has similar function) or using other markup system(?)s like phpBB and MediaWiki would be work. Using HTML tags by black/whitelisting tags can work but it's quite dangerous - a cracker would harm your site by XSSing.For example, you may think that only allowing
p
,br
,img
,font
,a
is OK (BTW, it's not good to usefont
when one can use CSS), but XSS can be done by input<img src="asdf" onerror="alert('hi')"/>
or<a href="javascript:alert('hi')">
.SQL
You should aware of SQLi - injecting SQL commands.
An example of SQLi is :
A way to avoid being SQLi'd in PHP is using
mysql_real_escape_string
(doc).您可以阅读SQL 注入
You could read about SQL Injections
插入特殊字符,尤其是
'
、?
、"
、$
、;
、、
和\
如果您的网站在这些方面没有失败,那么您就走在正确的道路上,但最好是使用带参数的查询。字符串作为参数,数据库会为您转义字符,您几乎无法创建一个。如果你这样做就错了。
Insert special characters, especially
'
,?
,"
,$
,;
,,
and\
. If your site doesn't fail on those, you're on the right track.But the best is to use queries with parameters. You just pass the string as a parameter and the database takes care of escaping the characters for you. You can hardly make a mistake if you do that.
这实际上取决于您网站的架构和用户交互。
对用户输入字段进行 SQL 注入是对使用数据库进行用户登录等的系统的典型攻击。因此,对输入用户字段的字符进行限制并在使用前对其进行筛选。
“关于你儿子的事……”
“哦,小比利!掉桌子了?”
It really depends on the architecture and user interaction with your site.
SQL injection into user entered fields is a typical attack on systems that use databases for user logins etc. Hence restrictions on characters entered into user fields and screening them before use.
"About your son ..."
"Oh Little Billy !drop tables ?"