小编ser*_*erg的帖子

在Web服务器上使用随机文件夹名称来限制对它的访问 - 不好主意?

假设我的public_html中有" admin "文件夹,我不希望除了我以外的任何人都可以访问它.如果不使用密码来保护它(使用apache htaccess)我只需将其重命名为" admin-7815696ecbf1c96e6894b779456d330e "并保持打开状态(当然是禁用文件夹索引)怎么办?

人们通常会从这种"解决方案"中惊慌失措,因为它看起来非常脆弱.但它真的比密码保护更糟糕吗?与密码保护相比,我无法想到任何重大的安全风险.有人能够找到这个文件夹的名称吗?

apache security

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

如何更改使用chrome.tabs.captureVisibleTab(Chrome扩展程序)捕获的选项卡的大小

我正在使用以下代码捕获所选标签的屏幕截图

chrome.tabs.captureVisibleTab( undefined, function( data ) { display( data ) });
Run Code Online (Sandbox Code Playgroud)

该API表示可以更改标签的大小(http://code.google.com/chrome/extensions/tabs.html#method-captureVisibleTab),但我无法弄清楚如何操作.目前所有截图都以全尺寸(1440x900)出现,但我只需要缩略图尺寸.

有谁知道如何使用这个API来做到这一点?

谢谢.

html5 google-chrome google-chrome-extension

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

内容脚本CSS不会覆盖原始脚本

我的问题是我想用我的自定义设置修改网站的样式.我尝试使用Content Scripts,但这种剂量有效,因为它们无法覆盖原始的css文件.这是一个例子:

富/ manifest.json的

{
  "name": "test",
  "version": "1.0",
  "content_scripts": [
    {
      "matches": ["file://*/*test.html"],
      "css": ["main.css"]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

富/ main.css的

body {
  background: #0f0;
}
Run Code Online (Sandbox Code Playgroud)

的test.html

<html>
  <head>
    <title>foobar</title>
  </head>

  <body style="background:#f00;">

  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

然后我将扩展foo文件夹加载到我的谷歌浏览器中,并打开test.html但背景颜色仍然是红色.我检查了元素,我看到了:

元素风格

body {
background: #f00;
}

用户样式表

body {
background: #0f0;
}


如何使用带有内容脚本的自定义css修改现有的css文件?
如果这不可能,当网页加载谷歌浏览器时,如何使用我的自定义自动修改现有的CSS.

javascript css google-chrome google-chrome-extension

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

内容处理:内联在Chrome中不起作用?

我从我的ASP.NET应用程序发送pdf文件,下面的标题在浏览器中显示pdf文件.在IE和FF上一切正常,但Chrome上没有.我得到空白的网页,没有显示PDF文件.这是已知的问题吗?

Content-Disposition: inline; filename="myfile.pdf"
Run Code Online (Sandbox Code Playgroud)

asp.net google-chrome

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

我可以使用 Django 风格 order_by() 对现有模型对象列表而不是 QuerySet 进行排序吗?

有没有一种简单的方法可以重用 Django 风格的 QuerySet 排序来对模型对象列表进行排序。

对应的东西:

MyModel.objects.all().order_by('-field', 'parent__field')
Run Code Online (Sandbox Code Playgroud)

只有我得到了 alist(MyModel.objects.all())作为输入,所以我已经得到了所有对象,只需要在内存中对它们进行排序'-field', 'parent__field'

python sorting django

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

是否可以构建以下SQL查询

原始查询看起来像这样(MySQL):

SELECT * 
FROM books 
WHERE title LIKE "%text%" OR description LIKE "%text%" 
ORDER BY date
Run Code Online (Sandbox Code Playgroud)

是否可以重写它(没有工会或程序),因此结果将如下所示:

  • 标题匹配按日期排序的查询的书籍列表,后跟:
  • 描述符合按日期排序的查询的书籍列表

所以基本上只是给匹配标题而不是描述赋予更高的优先级.

mysql sql database

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

需要帮助设计"无限"线程

我有一些数据库表,只要app正在运行,就需要一次处理5个数据库表.所以,它看起来像这样:

  1. 获取尚未处理的记录或其他线程现在不处理的记录.
  2. 处理它(这是一个依赖于互联网连接的漫长过程,因此可能会超时/抛出错误).
  3. 转到下一条记录.到达表的末尾从头开始.

我对线程没有多少经验,所以我看到两种可能的策略:

方法A.

1.创建新的ExecutorService:

ExecutorService taskExecutor = Executors.newFixedThreadPool(5);
Run Code Online (Sandbox Code Playgroud)

2.添加5个任务:

for (int i = 0; i < 5; i++) {
    taskExecutor.execute(new MyTask());
}
Run Code Online (Sandbox Code Playgroud)

3.每个任务都是无限循环,即:从表中读取记录,处理它,然后获取另一条记录.

这种方法的问题是如何通知其他线程当前正在处理哪些记录.为此,我可以使用表中的"status"字段,或者只使用一些包含当前处理ID的CopyOnWriteArraySet.

方法B.

1.创建相同的ExecutorService:

ExecutorService taskExecutor = Executors.newFixedThreadPool(5);
Run Code Online (Sandbox Code Playgroud)

2.有一个无限循环,选择需要处理的记录并将它们传递给执行程序:

while (true) {
    //get next record here
    taskExecutor.execute(new MyTask(record));
    //monitor the queue and wait until some thread is done processing,
    //so I can add another record
}
Run Code Online (Sandbox Code Playgroud)

3.每个任务处理一条记录.

这种方法的问题在于我需要将执行程序队列中的任务添加到比处理它们更慢的时间,以免它们随着时间的推移而堆积起来.这意味着我不仅需要监视当前正在运行的任务,还要监视它们何时完成处理,因此我可以将新记录添加到队列中.

我个人认为第一种方法更好(更容易),但我觉得第二种方法更正确.你怎么看?或者也许我应该做一些完全不同的事情?

如果需要,我也可以使用Spring或Quartz库.

谢谢.

java concurrency

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

如何在Hibernate中编写本机SQL查询而不对表名和字段进行硬编码?

有时,您必须使用本机SQL编写一些查询,而不是休眠HQL。有什么好方法可以避免对表名和字段进行硬编码,并从现有映射中获取此数据?

例如,代替:

String sql = "select user_name from tbl_user where user_id = :id";
Run Code Online (Sandbox Code Playgroud)

就像是:

String sql = "select " + Hibernate.getFieldName("user.name") + " from " + Hibernate.getTableName(User.class) + " where " + Hibernate.getFieldName("user.id") + " = :id";
Run Code Online (Sandbox Code Playgroud)

java hibernate

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

如何为AbstractRoutingDataSource安全频繁的DataSource切换?

我根据这篇文章实现了Spring + Hibernate的Dynamic DataSource Routing .我有几个具有相同结构的数据库,我需要选择哪个数据库将运行每个特定的查询.

在localhost上一切正常,但我担心这将如何在真正的网站环境中保持.他们使用一些静态上下文持有者来确定要使用的数据源:

public class  CustomerContextHolder {

   private static final ThreadLocal<CustomerType> contextHolder =
            new ThreadLocal<CustomerType>();

   public static void setCustomerType(CustomerType customerType) {
      Assert.notNull(customerType, "customerType cannot be null");
      contextHolder.set(customerType);
   }

   public static CustomerType getCustomerType() {
      return (CustomerType) contextHolder.get();
   }

   public static void clearCustomerType() {
      contextHolder.remove();
   }
}
Run Code Online (Sandbox Code Playgroud)

它被包装在一些ThreadLocal容器中,但究竟是什么意思呢?当两个Web请求并行调用此代码时会发生什么:

CustomerContextHolder.setCustomerType(CustomerType.GOLD);
//<another user will switch customer type here to CustomerType.SILVER in another request>
List<Item> goldItems = catalog.getItems();
Run Code Online (Sandbox Code Playgroud)

是否每个Web请求都包装在Spring MVC中的自己的线程中?将CustomerContextHolder.setCustomerType()变化是其他网络用户看到?我的控制器有synchronizeOnSession=true.

如何在我为当前用户运行所需查询之前确保没有其他人切换数据源?

谢谢.

java spring hibernate

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

如何为某些Django Rest Framework视图启用@cache_page?

我有基本的休息框架设置:

url(r'^items/$', ItemList.as_view(), name='item-list'),
...
class ItemList(generics.ListCreateAPIView):
    model = Item
    serializer_class = ItemSerializer
Run Code Online (Sandbox Code Playgroud)

我想使用@cache_page装饰器缓存此请求.我尝试过像愚蠢的东西:

url(r'^items/$', cached_items, name='item-list'),
...
@cache_page(1000)
def cached_items(request):
    return ItemList.as_view()
Run Code Online (Sandbox Code Playgroud)

这不起作用.如何正确包装这些视图?

python django django-cache django-rest-framework

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