Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

数据集 0.64,带有关于 SpatiaLite 的警告

Posted on 2023-01-10

时区.png

我今天早上发布了 Datasette 0.64。此版本主要是对以下认识的响应:如果 Datasette 实例配置为启用来自不受信任用户的任意 SQL 查询,则在加载 SpatiaLite 扩展的情况下运行 Datasette 是不安全的。

以下是完整引用的发行说明:

  • 如果您使用 SpatiaLite,Datasette 现在强烈建议不要允许任意 SQL 查询。 SpatiaLite 包含可能导致 Datasette 服务器崩溃的 SQL 函数。有关详细信息,请参阅SpatiaLite 。
  • 新的default_allow_sql设置,提供了一种更简单的方法来禁用最终用户执行的所有任意 SQL: datasette --setting default_allow_sql off 。另请参阅控制执行任意 SQL 的能力。 ( #1409 )
  • 使用 SpatiaLite 构建位置到时区 API是一个新的 Datasette 教程,展示了如何安全地使用 SpatiaLite 创建位置到时区 API。
  • 关于如何调试加载 SQLite 扩展的问题的新文档。无法加载扩展时显示的错误消息也得到了改进。 ( #1979 )
  • 修复了可访问性问题:表格过滤器表单中的<select>元素现在在当前聚焦时显示轮廓。 ( #1771 )

SpatiaLite 的问题

Datasette 允许任意 SQL 执行作为核心功能。它需要一系列步骤才能安全地提供:数据库连接以只读模式打开,它对 SQL 查询施加严格的时间限制,并且 Datasette 设计为在容器中运行以提供进一步的保护层。

SQLite 本身是实现此功能的出色平台:它具有一组默认功能,可以很好地支持此功能,并受到传奇般的全面测试套件的保护。

SpatiaLite是一个长期运行的 SQLite 第三方扩展,它为 SQLite 添加了一系列令人眼花缭乱的附加功能——其中大部分围绕 GIS,但也有一大堆额外功能。它包括调试例程、XML 解析器,甚至它自己的存储过程实现!

不幸的是,并非所有这些功能都可以安全地暴露给不受信任的查询——即使对于以只读模式打开的数据库也是如此。

在确定了可能导致 Datasette 实例崩溃的函数之后,我决定 Datasette 应该强烈建议不要以不受保护的方式公开 SpatiaLite。

除了新文档之外,我还添加了一个我计划了一段时间的功能:一个用于完全禁用任意 SQL 查询的简单设置:

 datasette --setting default_allow_sql off

在 0.64 之前,您可以通过将以下行添加到metadata.json文件来实现相同的目的:

 {   
    “allow_sql” :假   
}

或者在metadata.yml中:

 allow_sql :假

新设置实现了相同的目的,但更明显,甚至可以轻松应用于不使用元数据的 Datasette 实例。

新的 SpatiaLite 教程

该文档现在建议运行 SpatiaLite 实例,并使用 Datasette 的固定查询功能实现预先批准的 SQL。

为了帮助阐明这是如何工作的,我决定在Datasette 官方系列教程中发布一个新条目:

使用 SpatiaLite 构建位置到时区 API

这是我在 2017 年首次写的教程的更新版本。

新教程现在包含有关 Chris Amico 的datasette-geojson-map插件、SpatiaLite 点多边形查询、多边形交集查询、空间索引以及如何使用simplify()函数将巨大多边形缩小到更大尺寸的材料实用显示在地图上。

我对这个新教程非常满意。它不仅展示了运行 SpatiaLite 的安全方式,而且还展示了使用 Datasette 创建和部署自定义 API 的强大模式。

可以在此处访问生成的 API:

https://timezones.datasette.io/timezones

它托管在Fly上,使用其 1.94 美元/月的实例大小和 256MB 的 RAM – 很容易强大到足以托管此类应用程序。

我还更新了datasette-publish-fly插件,以便更轻松地部署禁用 SQL 执行的实例,请参阅1.3 发行说明。

原文: http://simonwillison.net/2023/Jan/9/datasette-064/#atom-everything

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Bits about Money
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • Elad Gil
  • Ellie Huxtable
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • Henrique Dias
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mostly metrics
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Rohit Patel
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme