當前位置:首頁 » 網頁前端 » 如何將不可信數據插入web中
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

如何將不可信數據插入web中

發布時間: 2022-07-17 03:49:53

❶ 如何將Web日誌文件導入資料庫

這幾天寫論文做實驗,Web日誌挖掘部分第一步就是對Web日誌進行預處理。所謂預處理就是將Web日誌中沒有用的記錄和欄位去掉。根據我的實驗需要需要保留的是有效用戶對於有效頁面的訪問時間,就這三個欄位就可以。做數據預處理的第一步是將以文本形式保存的Web日誌導入資料庫,然後利用sql語句對其所導入的資料庫表進行操作就可以完成數據與處理。

Web日誌的形式如下圖所示:

這個部分之前一直不是很明白,詢問去年做過這個工作的兩個哥們,其中一個說用C++中STL部分可以實現,另一個說是將日誌按行讀取,分割內容存入資料庫,然後讀取下一行,卻沒有做具體工作。總之這兩個人所說的都是利用編碼來實現文本的讀取和內容的分割最後再導入資料庫。這樣在理論上是可行的,但是實際操作起來還是有很大的麻煩的,以現在的時間來看是來不及的。

還好在相關文獻上看到有人提到用SQL
Server2000種的DTS工具可以實現這個導入功能。在網上進行搜索居然沒有任何有用的類似於教程的文章,手頭還沒有SQL
Server的書籍,只能自己研究了,經過了一個小時的研究終於將這個問題解決。

Web日誌文件雖然是文本文件,但是它的後綴是.log,如果想將其導入資料庫必須首先將其後綴改稱.txt。然後打運行SQL
Server2000的服務管理器,打開企業管理器。建立新的資料庫Weblog,然後利用工具DTS進行操作,DTS即數據轉換服務。操作為「工具—〉數據轉換服務—〉導入數據」,出現如下對話框如圖2所示。

在圖3對話框中的數據源選擇文本文件,對話框變成圖4所示界面。點擊文件名處右邊的瀏覽按鈕可以選擇所要讀取的文本文件形式的日誌。這里只能讀取.txt文件,所以前面一定要將Web日誌的後綴.log改成後綴.txt。

根據圖1我們看到Web日誌頭四行都是日誌的信息,比如時間和文件格式,所以在跳過行裡面要寫跳過4行。下一步進入圖6所示界面。

在圖6種需要選擇如何對文本文件中每一行的各個欄位進行區分。選擇方式如圖中所示。由於Web日誌每行為一個記錄,每條記錄中每一個欄位中間都是用空格來進行分隔,所以選擇「其它」然後在其對話框中填入一個空格鍵「
」,系統就將對數據進行處理進行劃分,得到分割好的記錄。當然相應欄位的名稱是錯誤的,這個可以在以後生成資料庫表文件後對表進行設計修改。點擊下一步進入圖7所示界面。

單擊下一步之後就可以完成數據導入。

然後刷新資料庫Weblog,就可以看到與Web日誌同名的新的資料庫表文件。修改相應欄位的名稱,就可以完成數據的導入和資料庫表的建立。

接下來可以利用查詢分析器對Web日誌的資料庫表進行操作,完成數據預處理,進而進行日誌挖掘或者流量分析。

❷ 如何用報表工具將報表嵌入到Web頁面中

Smartbi電子表格報表怎麼集成到第三方系統中
報表集成通常分為兩個步驟:單點登錄、報表集成。
單點登錄:通過CAS、AD域等方式,完成單點登錄
報表集成:每個電子表格報表都是一個URL,可以通過URL鏈接將報表嵌入到第三方系統中

Smartbi從報表開發的數據准備、樣式設計、數據計算、數據可視化、互動邏輯、共享發布六大步驟上都有特色的功能,充分利用了Excel的現有能力,堪稱企業報表平台的解決方案專家。尤其集成了Excel和ECharts後,使得Smartbi具有豐富的展現力、強大的互動性(基於單元格和對象的數據模型)、超級靈活的布局能力,而且這些都可以在Excel界面上全部完成。

集群:提高系統性能和可靠性

高一致性:所有通過Smartbi產品進行的配置和文件都可以隨時同步到集群的各個節點。

高可用性:支持所有單機功能。單一節點宕機後,系統仍可正常訪問。

強擴展性:基於良好的架構設計,隨著節點的增加,系統所支持的並發幾乎呈線性增長,且每個節點的負載更加均衡。

使用簡單:可在平台中通過簡單的操作快速配置集群環境,其中節點的增刪支持熱部署。此外,還可在平台中監控各個節點的運行情況和日誌。Smartbi一站式大數據分析平台

❸ 如何將excel中的數據自動導入web頁面中

1. 要正確的將Web客戶端的Excel文件導入到伺服器的資料庫中,需要將客戶端的Excel文件上傳到伺服器上。可以使用FileUpload控制項完成。
2. Excel文件上傳到伺服器指定的目錄中,這里假設是該站點的upfiles目錄中。
3. 使用SQL語句從upfiles目錄中的上傳Excel文件中讀取數據顯示或寫入資料庫。
相關代碼如下:
1. 前台文件:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="StudentInforInport.aspx.cs" Inherits="StudentInforInport" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<link rel="stylesheet" type="text/css" href="css/style.css"/>
<title>從Excel表中導入學生數據</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table style="width: 96%; border-collapse: separate; text-align: center">
<tr>
<td colspan="3">
從Excel中導入</td>
</tr>
<tr>
<td colspan="3" style="text-align: left; height: 9px;">
</td>
</tr>
<tr>
<td align="center" style="width: 20%;">
請選擇Excel文件路徑</td>
<td align="center" style="width: 483px; height: 18px; text-align: left">
<asp:FileUpload ID="FileUpload1" runat="server" Width="555px" /></td>
<td align="center" style="width: 10%">
<asp:Button ID="Btn_Inport" runat="server" Text="導 入" OnClick="Btn_Inport_Click" /></td>
</tr>
<tr>
<td align="center">
請選擇表名</td>
<td align="center" style="width: 483px; height: 18px; text-align: left">
<asp:DropDownList ID="DDList_Sheet" runat="server"></asp:DropDownList></td>
<td align="center">
</td>
</tr>
<tr>
<td colspan="3">
<asp:GridView ID="GV_Excel" runat="server" Height="133px" Width="100%">
</asp:GridView>
</td>
</tr>
<tr>
<td style="height: 18px">
</td>
<td style="width: 483px; height: 18px;">
</td>
<td style="width: 243px; height: 18px;">
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
2. 後台代碼:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
using System.Data.SqlClient;
public partial class StudentInforInport : System.Web.UI.Page
{
string strConn = System.Configuration.ConfigurationManager.AppSettings["strconn"].ToString().Trim(); //鏈接SQL資料庫
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 查詢EXCEL電子表格添加到DATASET
/// </summary>
/// <param name="filenameurl">伺服器路徑</param>
/// <param name="table">表名</param>
/// <param name="SheetName">Sheet表名</param>
/// <returns>讀取的DataSet </returns>
public DataSet ExecleDs(string filenameurl, string table, string SheetName)
{
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filenameurl + ";Extended Properties='Excel 8.0'";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
DataSet ds = new DataSet();
OleDbDataAdapter odda = new OleDbDataAdapter("select * from [" + SheetName + "]", conn);
odda.Fill(ds, table);
return ds;
}
protected void Btn_Inport_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile == false) //HasFile用來檢查FileUpload是否有指定文件
{
Response.Write("<script>alert('請您選擇Excel文件')</script> ");
return; //當無文件時,返回
}
string IsXls = System.IO.Path.GetExtension(FileUpload1.FileName).ToString().ToLower();//System.IO.Path.GetExtension獲得文件的擴展名
if (IsXls != ".xls")
{
Response.Write("<script>alert('只可以選擇Excel文件')</script>");
return; //當選擇的不是Excel文件時,返回
}
string filename = DateTime.Now.ToString("yyyyMMddHHmmss") + FileUpload1.FileName; // 獲取Execle文件名 DateTime日期函數
string savePath = Server.MapPath(("~\\upfiles\\") + filename); //Server.MapPath 獲得虛擬伺服器相對路徑
FileUpload1.SaveAs(savePath); //SaveAs 將上傳的文件內容保存在伺服器上
OperExcel Excel = new OperExcel();
ArrayList AL_ExcelSheet = new ArrayList();
AL_ExcelSheet = Excel.ExcelSheetName(savePath);
DDList_Sheet.Items.Clear();
for (int i = 0; i < AL_ExcelSheet.Count; i++)
{
DDList_Sheet.Items.Add( AL_ExcelSheet[i].ToString() );
}
SqlConnection cn = new SqlConnection(strConn);
cn.Open();
DataSet ds = ExecleDs(savePath, filename, DDList_Sheet.Items[0].ToString()); //調用自定義方法得到數據
DataTable dt = ds.Tables[0];
if (dt.Rows.Count == 0)
{
Response.Write("<script>alert('Excel表為空表,無數據!')</script>"); //當Excel表為空時,對用戶進行提示
}
else
{
// 數據
GV_Excel.DataSource = dt;
GV_Excel.DataBind();
Response.Write("<script>alert('Excle表導入成功!');location='default.aspx'</script>");
}
cn.Close();
}
}
注意:當導入的Excel文件中的內容很大時,將發生莫名的錯誤。因此導入的文件不能太大,一般少於5MB.

❹ 如何正確防禦xss攻擊

防禦xss攻擊需要重點掌握以下原則:

  1. 在將不可信數據插入到HTML標簽之間時,對這些數據進行HTMLEntity編碼。

  2. 在將不可信數據插入到HTML屬性里時,對這些數據進行HTML屬性編碼。

  3. 在將不可信數據插入到SCRIPT里時,對這些數據進行SCRIPT編碼。

  4. 在將不可信數據插入到Style屬性里時,對這些數據進行CSS編碼。

  5. 在將不可信數據插入到HTMLURL里時,對這些數據進行URL編碼。

  6. 使用富文本時,使用XSS規則引擎進行編碼過濾

❺ EXCEL數據如何通過WEB頁面導入到資料庫中

資料庫中的表:
和javaBean中對應
javaBean:
public class mainpart {
private int id;
private String name;//名稱
private String spid;
private String specification;//規格
private String suppid;
private String suppname;//供應商名稱
private String authenticatedMarks;//認證標志
private String standard;//標准
private String parameter;//參數
private Integer modelId;

public Integer getModelId() {
return modelId;
}
public void setModelId(Integer modelId) {
this.modelId = modelId;
}
public String getAuthenticatedMarks() {
return authenticatedMarks;
}
public void setAuthenticatedMarks(String authenticatedMarks) {
this.authenticatedMarks = authenticatedMarks;
}
public String getStandard() {
return standard;
}
public void setStandard(String standard) {
this.standard = standard;
}
public String getParameter() {
return parameter;
}
public void setParameter(String parameter) {
this.parameter = parameter;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSpid() {
return spid;
}
public void setSpid(String spid) {
this.spid = spid;
}
public String getSpecification() {
return specification;
}
public void setSpecification(String specification) {
this.specification = specification;
}
public String getSuppid() {
return suppid;
}
public void setSuppid(String suppid) {
this.suppid = suppid;
}
public String getSuppname() {
return suppname;
}
public void setSuppname(String suppname) {
this.suppname = suppname;
}

}

上傳調用:思想是讀取excel中的每一行數據,從第1行起(第0列為表頭),每列的數據轉換為string類型的,在通過sql語句
依次插入資料庫(插入,更新的兩個函數就不再貼出了)
�1�3�1�3public class MainPartimportBean {
private static Logger log = Logger.getLogger(SampleBean.class);
public void insertDB(InputStream fp,String modelId) {
try {
HSSFWorkbook workbook = new HSSFWorkbook(fp);// 創建工作薄
HSSFSheet sheet = workbook.getSheetAt(0);// 得到工作表
HSSFRow row = null;// 對應excel的行
HSSFCell cell = null;// 對應excel的列
String Var="";
row = sheet.getRow((short)0);

int totalRow = sheet.getLastRowNum();// 得到excel的總記錄條數
int modelId2 = Integer.valueOf(modelId);
String name = "";//名稱
String specification = "";//規格
String suppname = "";//供應商名稱
String parameter = "";//參數
String standard = "";//標准
String authenticatedMarks = "";//認證標志

for (short i = 1; i <=totalRow; i++) {
mainBean mb = new mainBean();
mainpart mp1 = new mainpart();
row = sheet.getRow(i);
cell = row.getCell((short)0);
if(cell!=null)
name = cell.getRichStringCellValue().toString();
mp1.setName(name);

cell = row.getCell((short)1);
if(cell!=null)
specification =cell.getRichStringCellValue().toString();
mp1.setSpecification(specification);

cell = row.getCell((short)2);
if(cell!=null)
suppname = cell.getRichStringCellValue().toString();
mp1.setSuppname(suppname);

cell = row.getCell((short)3);
if(cell!=null)
parameter = cell.getRichStringCellValue().toString();
mp1.setParameter(parameter);

cell = row.getCell((short)4);
if(cell!=null)
standard = cell.getRichStringCellValue().toString();
mp1.setStandard(standard);

cell = row.getCell((short)5);
if(cell!=null)
authenticatedMarks = cell.getRichStringCellValue().toString();
mp1.setAuthenticatedMarks(authenticatedMarks);
mp1.setModelId(modelId2);
if(mb.isEmptymainpart(authenticatedMarks))
mb.updataMainBymainpart(mp1);//防止數據重復
else
mb.newMainUpdata(mp1);//插入數據
}

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

❻ 感測器採集數據通過單片機處理後怎麼導入web伺服器(不是嵌入式web伺服器,而是單獨搭建的一般的web伺服器

用電腦嗎?
我現在有個這樣的。是很簡單的那種,
單片機串口傳入計算機。計算機通過網路傳給伺服器。
然後其他電腦就可以訪問了。

如果要單片機直接傳給伺服器的,通過網路的話,好像有點復雜,如果單片機可以直接和web伺服器連接就很簡單。

弄一個程序,實時採集單片機數據,web伺服器上用ASP寫一個更新資料庫的代碼,然後通過這個asp定時更新數據就可以了。

WEB伺服器的IIS服務,做一個簡單網頁,直接顯示數據就OK了。

我用的是那種網上的虛擬主機,和單片機連接的電腦不斷的更新虛擬主機上的資料庫。這樣數據就可以實時顯示,一般有點延時。

❼ 當不可信小應用程序或應用程序在 Web 瀏覽器中運行時,應當如何控制

本文適用於: Java 版本: 7.0, 8.0

Java 7u10 引入了一項功能,該功能能夠在 Web 頁中包含不可信 Java 應用程序(即由未知發行者進行數字簽名的應用程序或並非由可信證書頒發機構頒發的證書)的情況下管理何時及如何運行此類應用程序。在 Java 控制面板內設置安全級別將確定 在運行不可信的 Java 應用程序之前提示您("MEDIUM"(中)或"HIGH"(高)),或不可信的 Java 應用程序將被阻止,因此無法運行("VERY HIGH"(很高))。

從 Java 7 Update 51 開始,仍可以通過將託管小應用程序的站點添加到「例外站點」列表中,來授權運行不符合最新安全實踐的小應用程序。

Java 8 Update 20 開始,「中」安全級別已從 Java 控制面板中刪除 。只有「高」和「非常高」級別可用。

通過「例外站點」列表,用戶可以允許使用以前通過選擇 選項而允許的小應用程序,不同之處在於需要逐個站點地設置,從而最大程度地減少了使用更寬容設置的風險。


查找 Java 控制面板

Windows
Mac OS X


通過 Java 控制面板設置安全級別
在 Java 控制面板中,單擊 Security (安全)選項卡。
選擇所需的安全級別。
單擊 Apply (應用)。
單擊 OK (確定)保存對 Java 控制面板所做的更改。
Java 控制面板 - Java 8u20 和更高版本

Java 控制面板 - Java 7



Java 控制面板中的安全級別

Very High(很高)
這是限制性最強的安全級別設置。如果應用程序使用有效證書進行了簽名,並且在主 JAR 文件的清單中包括「許可權」屬性,則允許所有這些應用程序在進行適當的安全提示後運行。所有其他應用程序將被阻止。

High(高)
這是 推薦的最低 (默認)安全級別設置。如果應用程序使用有效或過期證書進行了簽名,並且在主 JAR 文件的清單中包括「許可權」屬性,則允許這樣的應用程序在進行適當的安全提示後運行。無法檢查證書的撤銷狀態時,也允許應用程序在進行適當的安全提示後運行。所有其他應用程序將被阻止。

中(在 Java 8 Update 20 和以後的版本中刪除)
僅阻止請求所有許可權的未簽名應用程序。允許所有其他應用程序在進行適當的安全提示後運行。不建議選擇 "Medium"(中)安全級別,如果運行惡意應用程序,您的計算機將更易於受到攻擊。

❽ 關於web里向資料庫插入記錄的問題總是出錯,insert into有問題。

一個一個欄位試就能試出是哪個欄位有問題,比如先
Dim cmd As New OleDbCommand("Insert Into users([logname]) Values('" & user_name.Text & "')", conn)
也可以先試一半欄位,確定哪一半有問題,再一個一個試

❾ 如何將感測器採集的數據上傳到web伺服器中

用個網路模塊 esp8266 之類的 然後 伺服器開啟tcp 或者udp server 直接把收集到的數據從網路模塊發出去就可以了

❿ 多個不同的web系統,用戶登陸成功,將用戶名,系統名等信息插入資料庫中。有什麼好辦法。急急急

每個項目裡面在改改唄,登陸後適用JDBC連接到另外一個資料庫,然後將登陸信息插入就可以了