此代码中的变量是否正确转义?

时间:2015-09-23 11:06:17

标签: php html mysql code-injection

我认为我已经妥善地逃脱了一切,但我想知道我是否做了正确的事情。我记得在某处读过我们不应该过滤输入,只是输出。就我而言,这是否意味着我不应该在任何地方使用function Get_Offset_From_Start (object, offset) { offset = offset || {x : 0, y : 0}; offset.x += object.offsetLeft; offset.y += object.offsetTop; if(object.offsetParent) { offset = Get_Offset_From_Start (object.offsetParent, offset); } return offset; } function Get_Offset_From_CurrentView (myElement) { if (!myElement) return; var offset = Get_Offset_From_Start (myElement); var scrolled = GetScrolled (myElement.parentNode); var posX = offset.x - scrolled.x; var posY = offset.y - scrolled.y; return {lefttt: posX , toppp: posY }; } //helper function GetScrolled (object, scrolled) { scrolled = scrolled || {x : 0, y : 0}; scrolled.x += object.scrollLeft; scrolled.y += object.scrollTop; if (object.tagName.toLowerCase () != "html" && object.parentNode) { scrolled=GetScrolled (object.parentNode, scrolled); } return scrolled; } /* // live monitoring window.addEventListener('scroll', function (evt) { var Positionsss = Get_Offset_From_CurrentView(myElement); console.log(Positionsss); }); */ 函数?并坚持sanitizeprepare statements

htmlscpecialchars

2 个答案:

答案 0 :(得分:1)

全部用PDO::prepare

完成
  

为将使用不同参数值多次发出的语句调用PDO::prepare()和PDOStatement :: execute()通过允许驱动程序协商客户端和/或服务器端缓存查询来优化应用程序的性能计划和元信息,并通过消除手动引用参数的需要帮助防止SQL注入攻击。

并且有另一个替代

PDO::quote

  

PDO::quote()在输入字符串周围放置引号(如果需要),并使用适合底层驱动程序的引用样式转义输入字符串中的特殊字符。

了解XSS注射Read this Answer too

答案 1 :(得分:0)

在清理用户输入的数据时,我总是使用的一件事是使用strip_tags()... 特别是如果要在某些时候回显内容......你不希望使用表单轻松注入脚本。 尝试在其中一个文本元素中键入<script>alert("hello");</scirpt>并提交...