|
Post by account_disabled on Feb 1, 2024 4:13:51 GMT -5
用与您的数据最相关的过滤器非常重要。XSS 经常会出现因为我们L或者反之亦然。您还应该仔细检查任何使用类似 的代码html_entity_decode因为这可能会通过撤消输入过滤器添加的编码而使您的代码受到攻击。 如果网站容易受到 XSS 攻击那么其用户的数据就不安全。 120+ 原生 React UI 组件与 Next.js 完全兼容 尝试 KENDOREACT 2. 跨站请求伪造 CSRF CSRF(有时缩写为 XSRF)是一种攻击恶意网站会诱骗我们的访问者在我们的网站上执行操作。如果用户登录到他们经常使用的网站(例如电子邮件、Facebook 等)然后在没有先注销的情况下访问恶意网站则可能会发生这种情况。如果原始站点容易受到 CSRF 攻击那么恶意站点就可以代表用户做坏事。让我们举一。 个与上面相同的例子。 由于我们的应用程序从 POST 的用户访问他们的网站。这很容易通过例如举办游戏或可爱的小动物照片来实现。当用户访问攻击者的站点时他们的浏览器会向发送 GET 请求。由于用户仍然登录浏览器会发送用户的 cookie从而向 购买电话号码列表 用户的所有朋友发布廉价药品广告。 复制 这会将表格发送回 。 防范 CSRF 的正确方法是使用与用户绑定的一次性令牌。该令牌只能颁发给登录的用户并且基于用户的帐户、秘密盐和可能的时间戳。当用户提交表单时需要验证此令牌。这确保请求源自我们控制的页面。仅当表单提交可以代表用户执行某些操作时才需要发出此令牌因此无需将其用于可公开访问的只读数据。令牌有时称为随机数。 有几种不同的方法可以生成随机数。例如查看Wordpress 源代码中的。 wp_create_nonce、wp_verify_nonce和函数。一个简单的随机数可以像这样生成:wp_salt <?php function get_nonce { return md5$salt . ":" . $user . ":" . ceiltime/86400; } ?> 复制 我们使用的时间戳是当前时间精确到 1 天(86400 秒)因此只要该操作在请求页面的一天内执行它就有效。我们可以减少该值以进行更敏感的操作(例如密码更改或帐户删除)。该值大于会话超时时间是没有意义的。 另一种方法可能是生成不带时间戳的随机数但将其存储为会话变量或与生成随机数的时间一起存储在服务器端数据库中。这使得攻击者更难通过猜测随机数的生成时间来生成随机数。 杂志上做广告 我们在输入表单中使用这个随机数当提交表单时我们重新生成随机数或从会话变量中读取它并将其与提交的值进行比较。
|
|