我有一个Spring MVC受Spring Security保护的Web应用程序.生活似乎很平静,直到我被迫做了一个Static Application Security Testing (SAST),这个工具引发了一堆安全问题.看看这里:
我已经浏览了所有CVE,并对漏洞进行了粗略描述.我有几个问题:
当像(Spring Security)这样的安全框架与它集成时,Web应用程序如何容易受到这种攻击?
我可以忽略所有这些漏洞,因为Spring Security可能会针对所有这些漏洞采取某种解决方法吗?
我正在向自己介绍 MYSQL 中的加密功能。
刚刚写了一个简单的 SQL 语句,将加密的条目添加到字段中
INSERT INTO test_table (field1) VALUES(aes_encrypt('fieldentry','password'))
Run Code Online (Sandbox Code Playgroud)
当我执行 SQL 时,出现以下错误
错误 1366:不正确的字符串值:'\xC7\xE13\xC4\xF4!...' 列 'field1' 在第 1 行 SQL 语句 - CHANGE COLUMN
field1VARCHAR(255) NOT NULL COMMENT ''
现在我读到它可能与 CHARACTER SET 有关系,并尝试将其从 utf8-default collation 更改为 utf8mb4 - 按照推荐的默认排序规则,但这没有任何区别。
我还尝试将列类型从 VARCHAR 更改为 VARBINARY。但是,当我尝试以下操作来检索数据时,SQL 语句成功运行:
SELECT AES_DECRYPT(field1, '12345') AS endata FROM test_table
Do Until rst.EOF
Response.Write(rst("endata"))
rst.movenext
Loop
Run Code Online (Sandbox Code Playgroud)
循环运行但没有返回值(空行)
我只是在寻找一个简单的加密内容,然后使用 AES_ENCRYPT/AES_DECRYPT 函数中的密码解密我的数据。
我有4个表,称为商店,用户,评论和评级.
我想获得相应商店的所有评论,包括评论的用户详细信息以及该商店的整体评分.
我几乎完成了单个查询.但问题是,如果商店对同一用户进行多次相同评级,则将其视为单一评级.但该评级数是正确的.
即
从该表中,user_id 3被评为shop_id 1为4次.因此计数为4,total_rating为17.
我的疑问是
select review.comments, users.username, count(distinct rating.id) as rating_count,
sum(distinct rating.rating) as total_rating from users
left join review on users.id = review.user_id and review.shop_id='1'
left join rating on users.id = rating.user_id and rating.shop_id='1'
where review.shop_id='1' or rating.shop_id='1'
group by users.id, review.user_id, rating.user_id, review.id
Run Code Online (Sandbox Code Playgroud)
当我运行此查询时,我得到了
但我需要total_rating 17 for user_id 3 ..
检查这个小提琴
我正在使用简单的转换器将字符串转换为枚举。这是自定义转换器:
@Component
public class SessionStateConverter implements Converter<String, UserSessionState> {
@Override
public UserSessionState convert(String source) {
try {
return UserSessionState.valueOf(source.toUpperCase());
} catch (Exception e) {
LOG.debug(String.format("Invalid UserSessionState value was provided: %s", source), e);
return null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
目前我PathVariable在我的休息控制器中使用 UserSessionState 。实现按预期工作。但是,当我尝试对其余控制器进行单元测试时,似乎转换不起作用并且它没有命中控制器方法。
@RunWith(MockitoJUnitRunner.class)
public class MyTest {
private MockMvc mockMvc;
@Mock
private FormattingConversionService conversionService;
@InjectMocks
private MynController controller;
@Before
public void setup() {
conversionService.addConverter(new SessionStateConverter());
mockMvc = MockMvcBuilders.standaloneSetup(controller).setConversionService(conversionService).build();
}
@Test
public void testSetLoginUserState() throws Exception {
mockMvc.perform(post("/api/user/login"));
}
Run Code Online (Sandbox Code Playgroud)
}
在调试模式下,我收到以下错误: …
每当我必须执行sql命令时,pgAdmin 4我都必须附加schema_name表格。例如:-
SELECT * FROM my_schema.users //where myschema is schema name
ORDER BY id ASC
Run Code Online (Sandbox Code Playgroud)
pgAdmin 4通过预先设置默认架构,有没有办法在没有架构名称的情况下执行sql命令。
像这样的东西
SELECT * FROM programme
ORDER BY id ASC
Run Code Online (Sandbox Code Playgroud)
-不使用表指定架构名称。
有没有一种方法可以pgAdmin 4在SQL工具中设置默认架构以 进行查询?
我正在从MainActivity启动一项服务,该服务无限期地运行以查找传入和传出的记录.
为什么示例"switch-case"不起作用?
没有错误发生,但我只能记录每个传入和传出.
录制呼叫后服务将被终止,它将被重新创建START_STICKY但永远不会开始.
请帮忙.提前致谢!
是否还有其他代码记录android中的传入和传出呼叫?
package com.exampled.demoserv;
import java.io.File;
import java.io.IOException;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.media.MediaRecorder;
import android.os.Environment;
import android.os.Handler;
import android.os.IBinder;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.widget.Toast;
public class ParentalService extends Service
{
@Override
public void onCreate()
{
//Toast.makeText(getApplicationContext(), "Service Created", Toast.LENGTH_SHORT).show();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
// TODO Auto-generated method stub
//Toast.makeText(getApplicationContext(), "Subu's Monitoring sTARTED", Toast.LENGTH_SHORT).show();
startMonitor();
return START_STICKY_COMPATIBILITY;
}
@Override
public IBinder onBind(Intent arg0)
{ …Run Code Online (Sandbox Code Playgroud) 这是我的课,
public class MyBusinessException extends RuntimeException {
@Autowired
private MessageSource messageSource;
private String errorCode;
private String messageInEnglish;
public MyBusinessException(String errorCode){
this.errorCode=errorCode;
this.messageInEnglish=messageSource.getMessage(this.code,null, Locale.ENGLISH);
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个异常类。当我将它errorCode作为参数传递给构造函数时,它应该填充错误消息,这就是我要寻找的。事实上,我想像这样实例化类
throw new MyBusinessException("MY-ERROR-CODE");//want to initiate like this(only one argument for constructor)
Run Code Online (Sandbox Code Playgroud)
如何实现这样的目标?
到目前为止,我已经尝试了所有这些:
@PostConstructspring ×3
java ×2
mysql ×2
spring-boot ×2
spring-mvc ×2
aes ×1
android ×1
annotations ×1
encoding ×1
encryption ×1
jar ×1
pgadmin ×1
php ×1
postgresql ×1
sql ×1