当前位置:首页 » 网页前端 » 如何将不可信数据插入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连接到另外一个数据库,然后将登陆信息插入就可以了