当前位置: 首页 > 面试题库 >

防御mysql注入和跨站点脚本编写的最佳方法

冯风史
2023-03-14
问题内容

此刻,我采用了一种“把所有东西扔在墙上,看看有什么办法”来阻止上述问题的方法。下面是我拼凑的功能:

function madSafety($string)
{

$string = mysql_real_escape_string($string);
$string = stripslashes($string);
$string = strip_tags($string);
return $string;

}

但是,我坚信有更好的方法可以做到这一点。我正在使用FILTER_ SANITIZE_STRING,但这似乎并不完全安全。

我想我想问的是,你们采用哪种方法,它们有多成功?谢谢


问题答案:

仅仅做很多您不真正了解的事情就不会对您有所帮助。您需要了解什么是注入攻击,以及确切的方法和在何处应执行的操作。

要点:

  • 禁用魔术引号。它们是一个不足的解决方案,并且使事情变得混乱。
  • 切勿直接在SQL中嵌入字符串。使用绑定参数,或转义(使用mysql_real_escape_string)。
  • *stripslashes数据库中检索数据时,请 *不要使 (例如)转义。
  • 当您将字符串嵌入html中时(例如,当您使用时echo),您应该默认转义该字符串(htmlentities与一起使用ENT_QUOTES)。
  • 如果需要在html中嵌入html字符串,则必须考虑字符串的来源。如果不受信任,则应通过过滤器对其进行管道传输。strip_tags从理论上讲,您应该使用它,但是它有缺陷;请改用HtmlPurifier。


 类似资料:
  • 现在的网站包含大量的动态内容以提高用户体验,比过去要复杂得多。所谓动态内容,就是根据用户环境和需要,Web应用程序能够输出相应的内容。动态站点会受到一种名为“跨站脚本攻击”(Cross Site Scripting, 安全专家们通常将其缩写成 XSS)的威胁,而静态站点则完全不受其影响。 攻击者通常会在有漏洞的程序中插入JavaScript、VBScript、 ActiveX或Flash以欺骗用户

  • 只要应用程序获取不受信任的数据并将其发送到客户端(浏览器)而未经验证,就会发生跨站点脚本(XSS)。这允许攻击者在受害者的浏览器中执行恶意脚本,这可能导致用户会话劫持,破坏网站或将用户重定向到恶意站点。 下面我们借助一个简单图表了解这个漏洞的威胁代理,攻击向量,安全弱点,技术影响和业务影响。 威胁代理 - 内部/外部用户或管理员发送给系统的不受信任的数据。 攻击者的方法 - 发送不受信任的数据/基

  • 类别 存储型 XSS 攻击 反射型 XSS 攻击 基于 DOM 的 XSS 攻击

  • 问题内容: 我希望批量编写一些脚本,这将需要在Linux上运行远程ssh命令。我希望返回输出,以便可以在屏幕上显示或记录它。 我尝试过,但屏幕上没有返回任何内容。 有人做过吗? 问题答案: PuTTY 的切换将 脚本文件 的 路径 作为参数而不是 command 。 参考:https : //the.earth.li/~sgtatham/putty/latest/htmldoc/Chapter3.