小编Dai*_*ius的帖子

在oracle"order by"部分阻止sql注入

要获取一些数据我正在创建一个SQL查询:)
当然有一些过滤和订购部分.

为了获得结果,我使用"NamedParameterJdbcTemplate",当我需要向"where"部分添加内容时,我使用参数map来防止注入.

但它与"order by"部分不同,因为没有自动转义(并且它是sql的一部分).此订单部分有时会填充来自用户的数据(直接),有时会从代码内部添加一些额外的排序参数.有一个问题:有时这个排序字段不仅包含列名,还包含sql语句.

现在,通过将一些字符(如')替换为空字符串来手动转义排序的每个参数,但是我们为代码设置的一些参数传递此规则有点复杂.

当您使用jdbc模板时,在查询的排序部分中阻止sql注入的最佳方法是什么?

sql oracle jdbctemplate

16
推荐指数
1
解决办法
1821
查看次数

用于mappedBy对象的Hibernate缓存

我的代码如下:

@Entity
@Table(name = "A")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class A
{
  @OneToOne(cascade={CascadeType.ALL}, fetch=FetchType.EAGER, mappedBy="a")
  public B getB() {};
}

@Entity
@Table(name = "B")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class B
{
  @OneToOne(cascade={}, fetch=FetchType.LAZY)
  @JoinColumn(name="A_ID")
  public A getA() {};
}
Run Code Online (Sandbox Code Playgroud)

每次A加载时都有查询B.为什么加载A.getB()后没有缓存,A是否可以缓存它?

java caching hibernate jpa one-to-one

13
推荐指数
1
解决办法
1398
查看次数

使用不同的语言环境连接到postgresql数据库

我有一些我需要连接的旧数据库(postgres 9.1).我没有问题启动服务器

pg_ctl start -D D:\datadir\pgdata\data -w
Run Code Online (Sandbox Code Playgroud)

但是当我尝试连接时,它会给出:

psql -U postgres -p 15432
psql: FATAL:  database locale is incompatible with operating system
DETAIL:  The database was initialized with LC_COLLATE "Norwegian (Bokmål)_Norway.1252",  which is not recognized by setlocale().
HINT:  Recreate the database with another locale or install the missing locale.
Run Code Online (Sandbox Code Playgroud)

新版本的postgres无法启动服务器(不兼容的数据版本).我正在使用Windows 10,带有postgres 9.1二进制文件.

如何连接,迁移,升级此类数据库以访问其数据?

postgresql locale windows-10

9
推荐指数
1
解决办法
4378
查看次数

Qt小部件显示在其他小部件上

我有一些信息/通知小部件,甚至在某些情况下也应显示。我的想法是要有一个小部件隐藏在左上角,并在需要时显示。问题是,如果我只是在其中放置简单的小部件并将其显示,则所有内容都将移至右侧,我想要的是将该小部件显示在该区域中的任何内容的顶部(它将隐藏那里的内容,但是没关系)。我不能使用堆叠式小部件,因为信息小部件与其他小部件的尺寸不同。如果我仅创建浮动窗口小部件并将其移动到该区域,则如果移动主窗口也不会移动。有什么办法吗?

user-interface qt qwidget

5
推荐指数
2
解决办法
2116
查看次数

Xamarin android中针对JavascriptInterface的可能类型是什么

我有一个使用Xamarin for android创建的小型应用程序,其中有WebView用于显示一些数据,而不是使用C#代码备份它来存储数据。为了从webview获取数据,我使用javascript,在C#中,我有这样的方法:

[Export("addMood2")]
[JavascriptInterface]
public String saveData(string data) { ...}
Run Code Online (Sandbox Code Playgroud)

然后我从JS代码中调用它(我有webView.AddJavascriptInterface和所有必需的东西)。因此,如果我传递字符串,它就可以工作,但是当然在javascript中,我会创建一些对象以及要保存的对象(它或多或少总是相同的结构),因此,现在我将其字符串化,而不是作为字符串传递,在C#端进行解析并具有数据。但是是否可以直接从JS传递该对象-作为Dictionary或某些映射结构?如果我尝试使用“ saveData(Java.Lang.Object数据)”数据始终为null,那么我猜它不喜欢类型映射。

android xamarin

5
推荐指数
0
解决办法
252
查看次数

将qmake配置为安装标头到不同的子文件夹

我有一个项目,其中头文件在qt项目文件中的不同子文件夹(/ config/.h;/thread / .h等)中包含,如:

HEADERS += $$PWD/src/*.h
HEADERS += $$PWD/src/config/*.h
Run Code Online (Sandbox Code Playgroud)

然后安装简单描述:

headers.files = $$HEADERS
headers.path  = $$INSTALL_INC_DIR/proj
Run Code Online (Sandbox Code Playgroud)

使用此lib的其他一些项目将包含来自该安装目录的文件,并且会出现问题 - 所有.h文件都复制到同一文件夹,没有子文件夹,并且在代码中它们包含在子文件夹(#include <proj/config/config.h>)中.

有可能告诉qmake(或实际上是nmake)复制文件时保留原始文件夹结构吗?

qt qmake nmake

3
推荐指数
1
解决办法
2083
查看次数

创建可能包含参数或可能不包含参数的 JPA 查询的最佳方法

有一种方法可以像这样创建 JPA 查询

        String queryString = "SELECT i FROM Item i";

        if (null != search) {
            queryString += " WHERE i.name LIKE :pattern";
        }

        TypedQuery<Item> query = entityManager.createQuery(queryString, Item.class);

        if (null != search) {
            query.setParameter("pattern", "%" + search + "%");
        }
Run Code Online (Sandbox Code Playgroud)

并且有 2 个检查,如果查询需要有可选的搜索字段,(if null != search) 避免重复的最常见方法是什么?使用单个参数可能有 2 个命名查询,或者 Criteria API 可能允许避免这种情况(因为没有查询字符串),但是还有其他方法吗?

java hibernate jpa

2
推荐指数
1
解决办法
2318
查看次数

如何允许客户在 Stripe 客户门户中的现有订阅上应用促销代码?

在 Stripe 客户门户设置中,我设置了“允许客户应用促销代码”,但是当我打开客户门户时,我找不到可以添加促销代码的任何地方。我可以取消订阅、更新付款方式或在设置中配置的客户数据,但不能取消促销代码。有什么特别的事情需要做吗?在生产中,我们通过特殊的 BillingPortalSession(stripe api)打开它,但我也检查了 stripe 自身生成的链接。

计费门户配置功能如下所示:

"features": {
"customer_update": {
  "allowed_updates": [
    "email",
    "address",
    "phone"
  ],
  "enabled": true
},
"invoice_history": {
  "enabled": true
},
"payment_method_update": {
  "enabled": true
},
"subscription_cancel": {
  "cancellation_reason": {
    "enabled": true,
    "options": [
      "too_expensive",
      "missing_features",
      "switched_service",
      "unused",
      "other",
      "customer_service",
      "too_complex"
    ]
  },
  "enabled": true,
  "mode": "at_period_end",
  "proration_behavior": "none"
},
"subscription_pause": {
  "enabled": false
},
"subscription_update": {
  "default_allowed_updates": [
    "price",
    "promotion_code"
  ],
  "enabled": true,
  "proration_behavior": "create_prorations"
}
Run Code Online (Sandbox Code Playgroud)

stripe-payments stripe-customer-portal

1
推荐指数
1
解决办法
1359
查看次数