0

我使用 XML 文件作为数据库,它从 MySQL 数据库中获取条目。要添加一个新条目,我有一个页面,该页面对名称、日期、位置等进行参数化查询,并将数据输入数据库,前提是信息以正确的格式提供。

例如,我想输入名称,我这样编码:

String name = "Mark" // Just for demonstration
String nameEn = URLEncoder.encode(name, "UTF-8");

这就是我进行初步消毒的方式。为了获得额外的保护,我在之后尝试了这个:

UrlQuerySanitizer sanitizer = new UrlQuerySanitizer();
sanitizer.setAllowUnregisteredParamaters(true);
sanitizer.parseUrl(url); //Url being the total url with parameters

但是,有时它只是不插入新行。当我使用逗号或撇号时会发生这种情况,所以我猜它与消毒有关。

我究竟做错了什么?谢谢。

编辑:更具体

我有一个 php 文件,它将插入带有参数化查询的数据库条目,如下所示: www.example.com/newentry.php?name=thename&location=thelocation1

我想将 url 字符串连接在一起thenamethelocation(作为输入)进行清理,以便它们在 url 中工作。如果我使用逗号或撇号之类的东西,它无法插入该条目,因为我假设这一点,它没有正确清理那些输入的内容。

4

1 回答 1

1

你看错地方了。

一个 url 包含,or'是一个有效的,所以问题必须在您的服务器端。

我猜您使用这些$_GET["parameter"]值,因此请确保您mysql_real_escape_string($_GET["parameter"])在尝试将这些值插入数据库之前执行必要的操作。

对于更深层次的知识搜索SQL Injections。这也可能让你免费偏执:)

于 2012-06-01T04:00:41.370 回答