我试图确保我的 Jenkins 实例无法被最新的 log4j 漏洞利用。
我有一个正在运行的管道脚本,我尝试按照以下说明操作:
https://community.jenkins.io/t/apache-log4j-2-vulnerability-cve-2021-44228/990
这是我的管道脚本的阶段之一:
stage('Building image aaa') {
steps{
script {
sh "echo executing"
org.apache.logging.log4j.core.lookup.JndiLookup.class.protectionDomain.codeSource
sh "docker build --build-arg SCRIPT_ENVIRONMENT=staging -t $IMAGE_REPO_NAME:$IMAGE_TAG ."
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我得到的错误与此处描述的错误不同,我不确定我是否正确检查了这一点。这是错误:
groovy.lang.MissingPropertyException: No such property: org for class: groovy.lang.Binding
at groovy.lang.Binding.getVariable(Binding.java:63)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:271)
at org.kohsuke.groovy.sandbox.impl.Checker$7.call(Checker.java:353)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:357)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:333)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:333)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:333)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:29)
at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)
at WorkflowScript.run(WorkflowScript:31)
at ___cps.transform___(Native Method)
at com.cloudbees.groovy.cps.impl.PropertyishBlock$ContinuationImpl.get(PropertyishBlock.java:74)
at com.cloudbees.groovy.cps.LValueBlock$GetAdapter.receive(LValueBlock.java:30)
....etc
Run Code Online (Sandbox Code Playgroud) 当我ls在我的目录中这样做时,得到一堆这些:
data.log".2015-01-22"
data.log".2015-01-23"
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时:
rm: cannot remove `data.log.2015-01-22': No such file or directory
Run Code Online (Sandbox Code Playgroud)
如果我能以某种方式做某事 ls | escape quotes | xargs rm
所以是的,我如何删除这些包含"?
更新
虽然大多数答案都有效。我实际上是在尝试这样做:
ls | rm
Run Code Online (Sandbox Code Playgroud)
所以它对某些文件失败了。之后如何在管道中转义引号ls?大多数答案实际上解决了手动操作文件的问题。但我问的是ls.之后的转义/替换引号。对不起,如果我的问题令人困惑。
在我的密码更改控制器中,我允许用户更改密码,前提是他们拥有有效的密码请求令牌。
然而,在他们已经使用过它之后,它就会变得无效,因此如果他们想再次重新使用它,用户会在模型上收到错误消息:
Reset password token is invalid
Run Code Online (Sandbox Code Playgroud)
这是来自 Devise 本身。如何将此消息修改为:
User reset password token already used
Run Code Online (Sandbox Code Playgroud)
如果我无法通过某些配置更改消息,那么是否有一种方法可以让我检查令牌是否有效?
这样我就可以在这种情况下手动呈现此消息