php - 使用 javascript、PHP、MySQL 进行 html 表单处理时的安全预防措施

标签 php javascript regex forms

我不是专业的网络开发人员,但我喜欢网络开发作为一种爱好。 我是一名学生,我被要求制作一个部门事件网站。我需要为用户注册创建 HTML 表单。我知道 XSS 脚本攻击和 SQL 注入(inject)。但不知道它们具体是如何工作的。我在服务器端使用 PHP 和 MySQL。

我正在考虑:

  • 不要采用空值。
  • 验证数字字段是否仅由整数值组成。
  • 电子邮件 ID 验证。等等..

我所做的这一切都是使用 RegEx 检查 - 都使用 javascript 和 PHP

现在我的问题是:

  • 哪些字符是我不应该允许进入我的数据库的?
  • 如果我将 < 和 > 与其替代的 <> 进行转换,可以吗?
  • 接受输入时我还应该考虑什么?

我不想限制用户输入无害的符号。那么,在将值存储到数据库之前,是否需要过滤任何特定的字符集,以便我可以正确地为表单字段编写正则表达式检查?

我在谷歌上搜索过,但没有找到正确的答案。 :(

最佳答案

为了防止 SQL 注入(inject),您应该使用该语言的转义函数。对于 PHP,这是 mysql_real_escape_string。或者,更好的是,使用 PDO 来限制用户可以放入数据库的内容。

HTML注入(inject)/XSS攻击不同;您可以毫无问题地将原始 HTML 存储在数据库中,但在显示源自用户的任何 HTML 之前,请对其调用 htmlspecialcharacters 以防止客户端的 Web 浏览器对其进行解释.

请勿不要编写您自己的自定义检查代码。你会错过一些东西。

关于php - 使用 javascript、PHP、MySQL 进行 html 表单处理时的安全预防措施,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3478930/

相关文章:

javascript - 无需单击按钮即可检查密码

php - Postgres Regex 未按预期工作

PHP/CSS 和列对齐

php - 从 mysql 获取复杂数据并使用 php 显示它们

php - 自动插入换行符?

regex - 这是否违反了 'leftmost longest' 原则?

regex - 解析每一行的Linux脚本,检查正则表达式并修改该行

php - 多年来我一直在编写没有 "classes"的 PHP ......我错过了什么?

javascript - JavaScript中由map函数组成的reduce函数

javascript - 为什么调用我的函数返回未定义?