當前位置:首頁 » 編程語言 » springsql注入
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

springsql注入

發布時間: 2022-04-12 13:46:04

㈠ SSM框架的sql中參數注入

這個問題以前沒有考慮過,get,set方法都是自動生成的,沒有想到把他設置成static 我這樣設置時spring容器可以給我注入我要的屬性對象

㈡ Spring MVC 如何防止XSS、SQL注入攻擊

在數據進入資料庫之前對非法字元進行轉義,在更新和顯示的時候將非法字元還原 在顯示的時候對非法字元進行轉義 如果項目還處在起步階段,建議使用第二種,直接使用jstl的<c:out>標簽即可解決非法字元的問題。當然,對於Javascript還需要自己處理一下,寫一個方法,在解析從伺服器端獲取的數據時執行以下escapeHTML()即可。 附:Javascript方法: String.prototype.escapeHTML = function () { return this.replace(/&/g, 『&』).replace(/>/g, 『>』).replace(/</g, 『<』).replace(/」/g, 『"』);} 如果項目已經開發完成了,又不想大批量改動頁面的話,可以採用第一種方法,此時需要藉助Spring MVC的@InitBinder以及org.apache.commons.lang.PropertyEditorSupport、org.apache.commons.lang.StringEscapeUtils public class StringEscapeEditor extends PropertyEditorSupport { private boolean escapeHTML; private boolean escapeJavaScript; private boolean escapeSQL; public StringEscapeEditor() { super(); } public StringEscapeEditor(boolean escapeHTML, boolean escapeJavaScript, boolean escapeSQL) {super();this.escapeHTML = escapeHTML; this.escapeJavaScript = escapeJavaScript; this.escapeSQL = escapeSQL;}@Overridepublic void setAsText(String text) { if (text == null) { setValue(null);} else {String value = text; if (escapeHTML) { value = StringEscapeUtils.escapeHtml(value); } if (escapeJavaScript) { value = StringEscapeUtils.escapeJavaScript(value); } if (escapeSQL) { value = StringEscapeUtils.escapeSql(value); } setValue(value); }}@Overridepublic String getAsText() { Object value = getValue(); return value != null ? value.toString() : 「」; }} 在上面我們做了一個EscapeEditor,下面還要將這個Editor和Spring的Controller綁定,使伺服器端接收到數據之後能夠自動轉移特殊字元。 下面我們在@Controller中注冊@InitBinder @InitBinder public void initBinder(WebDataBinder binder) { 這個方法可以直接放到abstract Controller類中,這樣子每個Controller實例都能夠擁有該方法。至此第二種方法完成,但是在還原的方法暫時還沒有。

㈢ Spring MVC中,遇到XSS、SQL注入攻擊怎麼處理

1、在數據進入資料庫之前對非法字元進行轉義,在更新和顯示的時候將非法字元還原;
2、在顯示的時候對非法字元進行轉義;

如果項目還處在起步階段,建議使用第二種,直接使用jstl的標簽即可解決非法字元的問題。在解析從伺服器端獲取的數據時執行以下escapeHTML()即可。
來源:麥子學院

㈣ ibatis spring 怎樣用註解的方式注入sqlMapClient

spring3.0注入sqlMapClient的幾種方式:
bean定義:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/cms" />
<property name="username" value="root" />
<property name="password" value="19860619" />
</bean>

<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>classpath:/context/ibatis/sqlMapConfig.xml
</value>
</property>
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>

a.在context中裝載sqlMapClient並建立sqlMapClientfactory,每次執行sql操作都從factory中獲取sqlMapClient.factory獲取bean方法:
WebApplicationContext wac = ContextLoader
.();
SqlMapClient sqlMapClient = wac.getBean("sqlMapClient",
SqlMapClient.class);

b.在每個DAO中使用spring註解注入sqlMapClient:
@Autowired
@Qualifier("sqlMapClient")
private SqlMapClient sqlMapClient;

c.創建BaseDao繼承SqlMapClientDaoSupport,所有DAO都繼承BaseDao.BaseDao中注入sqlMapClient:
@Autowired
@Qualifier("sqlMapClient")
public void setSqlMapClientForAutowired(SqlMapClient sqlMapClient) {
super.setSqlMapClient(sqlMapClient);
}
該方法實際上是使用了sqlMapclientTemplate並向template注入sqlMapClient。

㈤ 大哥,在springMVC下防禦xss漏洞。和sql注入的問題知道如何解決嗎

不知道你是想防哪種xss,存儲型?反射型?Dom型?
sql注入預防在編程時機可以做到,不要使用字元串拼接的sql語句,就可以做到

㈥ spring mvc sql注入 問題

這樣太容易出現注入問題了,一些關鍵屬性不能進行拼接的,使用SQL預編譯的的形式吧,也就是使用?(問號)傳進去

㈦ spring注入SqlSessionTemplate

要把@Resource(name="sqlSession")改成@Resource(name="sqlSessionFactory")才行或者就寫@Resource就行,這個註解不指明name的時候會ByType注入由spring自己幫你決定注入什麼bean,但是你指定了name之後就只能ByName注入 spring找不到這個bean自然就注入不了

㈧ org.springframework.jdbc.core.jdbctemplate 可以防止sql注入么

package com.lcw.spring.jdbc;

import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

public class JDBCTemplate {

@Test
public void demo(){
DriverManagerDataSource dataSource=new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql:///spring");
dataSource.setUsername("root");
dataSource.setPassword("");

JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource);
jdbcTemplate.execute("create table temp(id int primary key,name varchar(32))");

}

}

㈨ spring+ibatis在spring配置文件中注入sqlmapclient時,一直報錯,詳情代碼見下面

spring3.0注入sqlMapClient的幾種方式:
bean定義:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/cms" />
<property name="username" value="root" />
<property name="password" value="19860619" />
</bean>

<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>classpath:/context/ibatis/sqlMapConfig.xml
</value>
</property>
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>

a.在context中裝載sqlMapClient並建立sqlMapClientfactory,每次執行sql操作都從factory中獲取sqlMapClient.factory獲取bean方法:
WebApplicationContext wac = ContextLoader
.();
SqlMapClient sqlMapClient = wac.getBean("sqlMapClient",
SqlMapClient.class);

b.在每個DAO中使用spring註解注入sqlMapClient:
@Autowired
@Qualifier("sqlMapClient")
private SqlMapClient sqlMapClient;

c.創建BaseDao繼承SqlMapClientDaoSupport,所有DAO都繼承BaseDao.BaseDao中注入sqlMapClient:
@Autowired
@Qualifier("sqlMapClient")
public void setSqlMapClientForAutowired(SqlMapClient sqlMapClient) {
super.setSqlMapClient(sqlMapClient);
}
該方法實際上是使用了sqlMapclientTemplate並向template注入sqlMapClient。

㈩ spring MVC下如何能有效的防止XSS漏洞以及sql注入

在數據進入資料庫之前對非法字元進行轉義,在更新和顯示的時候將非法字元還原
在顯示的時候對非法字元進行轉義
如果項目還處在起步階段,建議使用第二種,直接使用jstl的標簽即可解決非法字元的問題。當然,對於Javascript還需要自己處理一下,寫一個方法,在解析從伺服器端獲取的數據時執行以下escapeHTML()即可。
附:Javascript方法:
String.prototype.escapeHTML = function () {
return this.replace(/&/g, 『&』).replace(/>/g, 『>』).replace(/