我正在学习 NextJS,并试图确定如何使用干净且安全的架构来布局我的项目。但是,我不确定在哪里存储包含潜在敏感数据的代码(即与数据库的连接、访问文件系统等)。我已阅读文档,但我仍然不确定这一问题。
在我的项目布局中,我有 2 个与此问题相关的目录:我添加的顶级目录/lib和/pages/api每个 NextJS 项目中包含的目录。
据我了解,/pages/api永远不会看到客户端,因此对于敏感代码来说是安全的。它只能用作进行发布、修补、删除等操作的地方。使用的示例/pages/api是当您从表单向服务器发出发布请求时。您可以从任何地方从此路由调用 api,例如:表单组件、文件/lib夹、中的页面/pages、外部第 3 方 api - 无论何处。
另一方面,顶级/lib目录是样板代码的地方,执行繁琐的操作,例如按字母顺序对博客文章进行排序、进行数学计算等,这不一定是“秘密”或敏感的 - 只是长而烦人的代码。该/lib目录始终会被客户端看到 -即使它的代码仅由服务器端方法(例如getStaticProps().
简而言之,任何远程敏感的内容都应该始终作为对目录的发布、补丁、放置等请求/pages/api,并且任何不敏感的长/乏味代码都应该重构到/lib目录中。
我有这个好吗?
我在使用 Jupyter Notebook 时听到并看到了很多“内核”这个词。我只想知道“内核”在 Jupyter Notebook 中代表什么。它与我们在操作系统中使用的含义相同吗?如果它相似/不同,究竟如何?
两个内核都进行硬件交互吗?
内核(操作系统):https ://simple.m.wikipedia.org/wiki/Kernel_( computer_science)
内核(Jupyter Notebook) https://jupyter-client.readthedocs.io/en/stable/kernels.html
受到我(目前已删除)对这个问题的回答的启发(但我的评论中有一个摘要),我想知道Derived下面代码中类的构造函数是否表现出未定义的行为。
#include <iostream>
class Base {
public:
Base(int test) {
std::cout << "Base constructor, test: " << test << std::endl;
}
};
class Derived : public Base {
private:
int variable;
public: Derived() : Base(variable = 50) { // Is this undefined behaviour?
}
};
int main()
{
Derived derived;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我知道,当基 c'tor 被调用时,派生对象尚未(正式)构造,因此variable成员的生命周期尚未开始。但是,C++ 标准的摘录(感谢NathanOliver提供参考)表明(可能)该对象可以“以有限的方式”使用(粗体我的):
7 同样,在对象的生命周期开始之前 但在对象将占用的存储空间已经分配之后,或者在对象的生命周期结束之后并且在对象占用的存储空间被重用或释放之前,任何引用可以使用原始对象,但只能以有限的方式使用。对于正在构建或销毁的对象,请参阅 [class.cdtor]。否则,这种泛左值指的是分配的存储([basic.stc.dynamic.allocation]),并且使用不依赖于其值的泛左值的属性是明确定义的。…
显然,如果variable一个对象本身有一个非平凡的构造函数,那么(几乎可以肯定)这里会有未定义的行为。但是,对于像 an …
我正在尝试调整现有 C++ 代码的某些层以供 Rust 使用,显然方法是通过 C API。
例如,一个函数可能返回一个结构作为对象
#pragma pack(push,4)
struct Result {
char ch;
int32_t sum1;
int32_t sum2;
};
#pragma pack(pop)
extern "C"
Result
muladd(int32_t a, int32_t b, int32_t c) {
return Result{1, a+b*c, a*b+c};
}
Run Code Online (Sandbox Code Playgroud)
我正在做的 Rust
#[repr(C,align(4))]
pub struct Result {
pub ch: i8,
pub sum1: i32,
pub sum2: i32,
}
extern "C" {
pub fn muladd( a:i32, b:i32, c:i32 ) -> Result;
}
pub fn usemuladd( val: i32 ) -> i32 {
unsafe {
let res …Run Code Online (Sandbox Code Playgroud) 我正在阅读 Bjarne Stroustrup 的《C++ 编程原理与实践》(第二版)。在第 660-661 页,作者定义了一个函数,如下所示:
istream& read_word(istream& is, char* buffer, int max)
// read at most max-1 characters from is into buffer
{
is.width(max); // read at most max-1 characters in the next >>
is >> buffer; // read whitespace-terminated word,
// add zero after the last character read into buffer
return is;
}
Run Code Online (Sandbox Code Playgroud)
稍后int main(),该函数被调用为read_word(cin,s,max);where cinis std::cin, maxis an int, and sis a chararray of size max …
Svelte 工作流程绝对是菜鸟,但我尊敬的人强烈推荐它,我想掌握它。
到目前为止已经很清楚了,但是当我完成 SvelteKit 设置和文档时,我无法准确理解这两个标签在app.html
是否可以在 Java 测试中将 Testcontainers 与 Podman 一起使用?
截至 2022 年 3 月,Testcontainers 库未将已安装的 Podman 检测为有效的 Docker 环境。
Podman 可以在采用 Apple 芯片的 MacOS(本地开发环境)和 Linux x86_64(CI/CD 环境)上替代 Docker 吗?
如标题中所述,每当我将响应标头设置为默认值 (200) 之外的任何状态代码时,我都会在日志中收到响应错误。这在几周前没有发生,所以我不确定为什么现在会发生。另一个线程: Firebase Cloud Function finish with status: 'response error' 表示我的函数响应的 HTTP 请求高于 10MB。但是,我决定只部署一个函数(getTest),它只是
package foo
import (
"net/http"
)
func GetTest(w http.ResponseWriter, r *http.Request) {
// Status Code Test
w.WriteHeader(201) // Testing with status code 201
return
}
Run Code Online (Sandbox Code Playgroud)
我仍然返回“响应错误”。将上述测试代码中的任何状态代码(201,400,404,500 等)替换为 200 将导致状态代码 200 的成功 GCP 日志。
此外,如果先前的调用以响应错误结束,GCP有时会自动再次调用该函数,状态为 200,如图#1 所示。我说有时是因为我无法始终如一地展示这个问题。我相信,在这次重新调用期间,我的代码中没有实际执行任何内容,它只是返回 200。
有人知道这个问题吗?
编辑:我还想指出我只在云函数日志上看到这个“响应错误”。在我的 API 网关日志中,我看到函数结束时的正确状态代码。
我想计算两个指标的比率,但我没有得到任何数据...
我有一些指标,例如:
fs_bytes{filesystem="/var",instance="localhost:9108",job="graphite",metric="Used"} 50.0
fs_bytes{filesystem="/var",instance="localhost:9108",job="graphite",metric="Total"} 100.0
Run Code Online (Sandbox Code Playgroud)
当我尝试执行任何操作(设备、乘法、加法、减法)时,例如:
fs_bytes{instance="localhost:9108",metric="Used"} / fs_bytes{instance="localhost:9108",metric="Total"}
Run Code Online (Sandbox Code Playgroud)
普罗米修斯返回:
no data
Run Code Online (Sandbox Code Playgroud)
当我在 Prometheus 表达式浏览器中单独查询每个指标时,我确实得到了指标值。
怎么了?
当我在 SQL Server Management Studio 中取消停靠选项卡并稍后尝试重新停靠时,SSMS 崩溃。每次都会发生这种情况,我可以随意重现该问题。我所要做的就是取消停靠一个选项卡(比如说,为了并排查看不同选项卡中的两个 SQL 查询),然后尝试重新停靠它,SSMS 将崩溃。查看事件查看器,每次发生崩溃时,我都会发现两条连续的错误消息,第一条的源设置为“.NET 运行时”,第二条的源设置为事件查看器中的“应用程序错误”:
消息 #1:
应用程序:Ssms.exe 框架版本:v4.0.30319 描述:由于未处理的异常,进程被终止。异常信息:System.Windows.Interop.HwndMouseInputProvider.HasCustomChrome(System.Windows.Interop.HwndSource, RECT ByRef) 处 System.Windows.Interop.HwndMouseInputProvider.GetEffectiveClientRect(IntPtr) 处 System.Windows.Interop.HwndMouseInputProvider 处的 System.NullReferenceException。 PossivelyDeactivate(IntPtr, Boolean) at System.Windows.Interop.HwndMouseInputProvider.Dispose() at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr, MS.Internal.Interop.WindowMessage, IntPtr, IntPtr, Boolean ByRef) at System.Windows .Interop.HwndSource.InputFilterMessage(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) 在 MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) 在 MS.Win32.HwndSubclass。
消息#2:
错误的应用程序名称:Ssms.exe,版本:2019.150.18369.0,时间戳:0x5fd317a3 错误的模块名称:PresentationCore.ni.dll,版本:4.8.4320.0,时间戳:0x5fc81198 异常代码:0x0504007 错误进程:0x50007 0x166c 错误应用程序启动时间:0x01d6fc1a384c50f7 错误应用程序路径:C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\Ssms.exe 错误模块路径:C:\Windows\assembly\NativeImages_v4.0.30319_32 PresentationCore\627e2c47709994c2c1f8fd2e1228d567\PresentationCore.ni.dll 报告ID:1b2fa46b-b60c-4517-bd91-1d4de7324b26 故障包全名:故障包ID:相关应用程序
有没有其他人遇到过这个问题并找到了解决方法或解决方法?
c++ ×3
arrays ×1
c ×1
c++20 ×1
constructor ×1
go ×1
istream ×1
javascript ×1
kernel ×1
next.js ×1
podman ×1
pointers ×1
prometheus ×1
promql ×1
reactjs ×1
rust ×1
sql-server ×1
ssms ×1
ssms-18 ×1
sveltekit ×1