相关疑难解决方法(0)

用PHP清理用户输入的最佳方法是什么?

是否有一个catchall函数适用于清理SQL注入和XSS攻击的用户输入,同时仍允许某些类型的html标记?

php security xss user-input sql-injection

1069
推荐指数
14
解决办法
50万
查看次数

使用PHP的jQuery Ajax POST示例

我正在尝试将数据从表单发送到数据库.这是我正在使用的表单:

<form name="foo" action="form.php" method="POST" id="foo">
    <label for="bar">A bar</label>
    <input id="bar" name="bar" type="text" value="" />
    <input type="submit" value="Send" />
</form>
Run Code Online (Sandbox Code Playgroud)

典型的方法是提交表单,但这会导致浏览器重定向.使用jQuery和Ajax,是否可以捕获所有表单的数据并将其提交给PHP脚本(例如,form.php)?

javascript php ajax jquery post

653
推荐指数
12
解决办法
133万
查看次数

什么是在PHP中清理整个$ _POST数组的好方法?

我有一个包含很多变量的表单,然后发送一封电子邮件,而不是$_POSTfilter_var($_POST['var'], FILTER_SANITIZE_STRING); 一个更简单的代码片段来清理每个值.我想出了下面的内容,这似乎有效,因为我相信默认操作是FILTER_SANITIZE_STRING,但我只是想知道人们的意见是什么,如果这不是好的做法,也许你可以告诉我为什么?$_POST然后将这些值单独嵌入到新变量中,因此我只会在开始时使用array_map来清理所有内容......

$_POST = array_map('filter_var', $_POST);
Run Code Online (Sandbox Code Playgroud)

感谢您的回复,为您提供更多信息,基本上:

我在一个表单中有20-30个输入字段被捕获,然后数据显示给用户检查输入,然后对变量进行清理,然后向用户发送电子邮件,最后将详细信息输入到数据库中.

目前我正在使用上面的array_map函数清理,以及在发送电子邮件之前使用电子邮件地址上的FILTER_SANITIZE_EMAIL,然后在插入数据库之前使用mysql_real_escape_string()转义输入.没有准备好的陈述等等.你认为我应该做什么吗?再次感谢!

php arrays sanitization

34
推荐指数
3
解决办法
5万
查看次数

何时过滤/清理数据:在数据库插入之前或显示之前?

当我准备解决输入数据过滤和消毒问题时,我很好奇是否有最佳(或最常用)的做法?在将数据插入数据库之前过滤/清理数据(HTML,JavaScript等)是否更好?还是应该在准备数据以便在HTML中显示时完成?

几点说明:

  • 我在PHP中这样做,但我怀疑这个问题的答案是语言不可知的.但是,如果您有任何特定于PHP的建议,请分享!
  • 这不是转义数据库插入数据的问题.我已经很好地处理了PDO.

谢谢!

html php filter sanitize

21
推荐指数
5
解决办法
5841
查看次数